青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

chaosuper85

C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
  118 Posts :: 0 Stories :: 3 Comments :: 0 Trackbacks

簡(jiǎn)述

    一 列文件清單
    二:執(zhí)行程序
    三:顯示數(shù)據(jù)
    四:斷點(diǎn)(breakpoint)
    五.?dāng)帱c(diǎn)的管理
    六.變量的檢查和賦值
    七. 單步執(zhí)行
    八.函數(shù)的調(diào)用
    九.機(jī)器語(yǔ)言工具
    十.信號(hào)

GDB的使用方法

簡(jiǎn)述
一 列文件清單

    * List

      (gdb) list line1,line2

二:執(zhí)行程序
要想運(yùn)行準(zhǔn)備調(diào)試的程序,可使用run命令,在它后面可以跟隨發(fā)給該程序的任何參數(shù),包括標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出說(shuō)明符(<和> )和外殼通配符(*、?、[、])在內(nèi)。如果你使用不帶參數(shù)的run命令,gdb就再次使用你給予前一條run命令的參數(shù),這是很有用的。利用set args 命令就可以修改發(fā)送給程序的參數(shù),而使用show args 命令就可以查看其缺省參數(shù)的列表。

(gdb)set args –b –x
(gdb) show args
backtrace命令為堆棧提供向后跟蹤功能。
Backtrace 命令產(chǎn)生一張列表,包含著從最近的過(guò)程開(kāi)始的所以有效過(guò)程和調(diào)用這些過(guò)程的參數(shù)。

三:顯示數(shù)據(jù)

    * 利用print 命令可以檢查各個(gè)變量的值。

      (gdb) print p (p為變量名)

      print 是gdb的一個(gè)功能很強(qiáng)的命令,利用它可以顯示被調(diào)試的語(yǔ)言中任何有效的表達(dá)式。表達(dá)式除了包含你程序中的變量外,還可以包含以下內(nèi)容:

   1. 對(duì)程序中函數(shù)的調(diào)用

      (gdb) print find_entry(1,0)

   2. 數(shù)據(jù)結(jié)構(gòu)和其他復(fù)雜對(duì)象

      (gdb) print *table_start
      $8={e=reference=’\000’,location=0x0,next=0x0}

   3. 值的歷史成分

      (gdb)print $1 ($1為歷史記錄變量,在以后可以直接引用 $1 的值)

   4. 人為數(shù)組
      人為數(shù)組提供了一種去顯示存儲(chǔ)器塊(數(shù)組節(jié)或動(dòng)態(tài)分配的存儲(chǔ)區(qū))內(nèi)容的方法。早期的調(diào)試程序沒(méi)有很好的方法將任意的指針換成一個(gè)數(shù)組。就像對(duì)待參數(shù)一樣,讓我們查看內(nèi)存中在變量h后面的10個(gè)整數(shù),一個(gè)動(dòng)態(tài)數(shù)組的語(yǔ)法如下所示:
      base@length
      因此,要想顯示在h后面的10個(gè)元素,可以使用h@10

      (gdb)print h@10
      $13=(-1,345,23,-234,0,0,0,98,345,10)

    * whatis 命令可以顯示某個(gè)變量的類(lèi)型

      (gdb) whatis p
      type = int *

四:斷點(diǎn)(breakpoint)
break命令(可以簡(jiǎn)寫(xiě)為b)可以用來(lái)在調(diào)試的程序中設(shè)置斷點(diǎn),該命令有如下四種形式:

    * break line-number 使程序恰好在執(zhí)行給定行之前停止。
    * break function-name 使程序恰好在進(jìn)入指定的函數(shù)之前停止。
    * break line-or-function if condition 如果condition(條件)是真,程序到達(dá)指定行或函數(shù)時(shí)停止。
    * break routine-name 在指定例程的入口處設(shè)置斷點(diǎn)

如果該程序是由很多原文件構(gòu)成的,你可以在各個(gè)原文件中設(shè)置斷點(diǎn),而不是在當(dāng)前的原文件中設(shè)置斷點(diǎn),其方法如下:

(gdb) break filename:line-number
(gdb) break filename:function-name

要想設(shè)置一個(gè)條件斷點(diǎn),可以利用break if命令,如下所示:

(gdb) break line-or-function if expr
例:
(gdb) break 46 if testsize==100

從斷點(diǎn)繼續(xù)運(yùn)行:countinue 命令
五.?dāng)帱c(diǎn)的管理

1.顯示當(dāng)前gdb的斷點(diǎn)信息:

(gdb) info break

他會(huì)以如下的形式顯示所有的斷點(diǎn)信息:

Num Type Disp Enb Address What
1 breakpoint keep y 0x000028bc in init_random at qsort2.c:155
2 breakpoint keep y 0x0000291c in init_organ at qsort2.c:168

   1. 刪除指定的某個(gè)斷點(diǎn):

      (gdb) delete breakpoint 1

      該命令將會(huì)刪除編號(hào)為1的斷點(diǎn),如果不帶編號(hào)參數(shù),將刪除所有的斷點(diǎn)

      (gdb) delete breakpoint

   2. 禁止使用某個(gè)斷點(diǎn)

      (gdb) disable breakpoint 1

      該命令將禁止斷點(diǎn) 1,同時(shí)斷點(diǎn)信息的 (Enb)域?qū)⒆優(yōu)?n
   3. 允許使用某個(gè)斷點(diǎn)

      (gdb) enable breakpoint 1

      該命令將允許斷點(diǎn) 1,同時(shí)斷點(diǎn)信息的 (Enb)域?qū)⒆優(yōu)?y
   4. 清除原文件中某一代碼行上的所有斷點(diǎn)

      (gdb)clean number

      注:number 為原文件的某個(gè)代碼行的行號(hào)

六.變量的檢查和賦值

    * whatis:識(shí)別數(shù)組或變量的類(lèi)型
    * ptype:比whatis的功能更強(qiáng),他可以提供一個(gè)結(jié)構(gòu)的定義
    * set variable:將值賦予變量
    * print 除了顯示一個(gè)變量的值外,還可以用來(lái)賦值

七. 單步執(zhí)行

    * next 不進(jìn)入的單步執(zhí)行
    * step 進(jìn)入的單步執(zhí)行如果已經(jīng)進(jìn)入了某函數(shù),而想退出該函數(shù)返回到它的調(diào)用函數(shù)中,可使用命令finish

八.函數(shù)的調(diào)用

    * call name 調(diào)用和執(zhí)行一個(gè)函數(shù)

      (gdb) call gen_and_sork( 1234,1,0 )
      (gdb) call printf(“abcd”)
      $1=4

    * finish 結(jié)束執(zhí)行當(dāng)前函數(shù),顯示其返回值(如果有的話)

九.機(jī)器語(yǔ)言工具
有一組專(zhuān)用的gdb變量可以用來(lái)檢查和修改計(jì)算機(jī)的通用寄存器,gdb提供了目前每一臺(tái)計(jì)算機(jī)中實(shí)際使用的4個(gè)寄存器的標(biāo)準(zhǔn)名字:

    * $pc : 程序計(jì)數(shù)器
    * $fp : 幀指針(當(dāng)前堆棧幀)
    * $sp : 棧指針
    * $ps : 處理器狀態(tài)

十.信號(hào)
gdb 通??梢圆蹲降桨l(fā)送給它的大多數(shù)信號(hào),通過(guò)捕捉信號(hào),它就可決定對(duì)于正在運(yùn)行的進(jìn)程要做些什么工作。例如,按CTRL-C將中斷信號(hào)發(fā)送給gdb,通常就會(huì)終止gdb。但是你或許不想中斷gdb,真正的目的是要中斷gdb正在運(yùn)行的程序,因此,gdb要抓住該信號(hào)并停止它正在運(yùn)行的程序,這樣就可以執(zhí)行某些調(diào)試操作。

Handle命令可控制信號(hào)的處理,他有兩個(gè)參數(shù),一個(gè)是信號(hào)名,另一個(gè)是接受到信號(hào)時(shí)該作什么。幾種可能的參數(shù)是:

    * nostop 接收到信號(hào)時(shí),不要將它發(fā)送給程序,也不要停止程序。
    * stop 接受到信號(hào)時(shí)停止程序的執(zhí)行,從而允許程序調(diào)試;顯示一條表示已接受到信號(hào)的消息(禁止使用消息除外)
    * print 接受到信號(hào)時(shí)顯示一條消息
    * noprint 接受到信號(hào)時(shí)不要顯示消息(而且隱含著不停止程序運(yùn)行)
    * pass 將信號(hào)發(fā)送給程序,從而允許你的程序去處理它、停止運(yùn)行或采取別的動(dòng)作。
    * nopass 停止程序運(yùn)行,但不要將信號(hào)發(fā)送給程序。

例如,假定你截獲SIGPIPE信號(hào),以防止正在調(diào)試的程序接受到該信號(hào),而且只要該信號(hào)一到達(dá),就要求該程序停止,并通知你。要完成這一任務(wù),可利用如下命令:

(gdb) handle SIGPIPE stop print

請(qǐng)注意,UNIX的信號(hào)名總是采用大寫(xiě)字母!你可以用信號(hào)編號(hào)替代信號(hào)名如果你的程序要執(zhí)行任何信號(hào)處理操作,就需要能夠測(cè)試其信號(hào)處理程序,為此,就需要一種能將信號(hào)發(fā)送給程序的簡(jiǎn)便方法,這就是signal命令的任務(wù)。該命令的參數(shù)是一個(gè)數(shù)字或者一個(gè)名字,如SIGINT。假定你的程序已將一個(gè)專(zhuān)用的 SIGINT(鍵盤(pán)輸入,或CTRL-C;信號(hào)2)信號(hào)處理程序設(shè)置成采取某個(gè)清理動(dòng)作,要想測(cè)試該信號(hào)處理程序,你可以設(shè)置一個(gè)斷點(diǎn)并使用如下命令:

(gdb) signal 2
continuing with signal SIGINT(2)

該程序繼續(xù)執(zhí)行,但是立即傳輸該信號(hào),而且處理程序開(kāi)始運(yùn)行.
GDB的使用方法

GDB是一個(gè)強(qiáng)大的命令行調(diào)試工具。大家知道命令行的強(qiáng)大就是在于,其可以形成
執(zhí)行序列,形成腳本。UNIX下的軟件全是命令行的,這給程序開(kāi)發(fā)提代供了極大的
便利,命令行軟件的優(yōu)勢(shì)在于,它們可以非常容易的集成在一起,使用幾個(gè)簡(jiǎn)單的已
有工具的命令,就可以做出一個(gè)非常強(qiáng)大的功能。

于是UNIX下的軟件比Windows下的軟件更能有機(jī)地結(jié)合,各自發(fā)揮各自的長(zhǎng)處,組合
成更為強(qiáng)勁的功能。而Windows下的圖形軟件基本上是各自為營(yíng),互相不能調(diào)用,很
不利于各種軟件的相互集成。在這里并不是要和Windows做個(gè)什么比較,所謂“寸有
所長(zhǎng),尺有所短”,圖形化工具還是有不如命令行的地方。

 

用GDB調(diào)試程序

GDB概述
————

GDB是GNU開(kāi)源組織發(fā)布的一個(gè)強(qiáng)大的UNIX下的程序調(diào)試工具?;蛟S,各位比較喜歡
那種圖形界面方式的,像VC、BCB等IDE的調(diào)試,但如果你是在UNIX平臺(tái)下做軟件,你
會(huì)發(fā)現(xiàn)GDB這個(gè)調(diào)試工具有比VC、BCB的圖形化調(diào)試器更強(qiáng)大的功能。

所謂“寸有所
長(zhǎng),尺有所短”就是這個(gè)道理。

一般來(lái)說(shuō),GDB主要幫忙你完成下面四個(gè)方面的功能:

1、啟動(dòng)你的程序,可以按照你的自定義的要求隨心所欲的運(yùn)行程序。
2、可讓被調(diào)試的程序在你所指定的調(diào)置的斷點(diǎn)處停住。(斷點(diǎn)可以是條件表達(dá)式)
3、當(dāng)程序被停住時(shí),可以檢查此時(shí)你的程序中所發(fā)生的事。
4、動(dòng)態(tài)的改變你程序的執(zhí)行環(huán)境。

從上面看來(lái),GDB和一般的調(diào)試工具沒(méi)有什么兩樣,基本上也是完成這些功能,不過(guò)
在細(xì)節(jié)上,你會(huì)發(fā)現(xiàn)GDB這個(gè)調(diào)試工具的強(qiáng)大,大家可能比較習(xí)慣了圖形化的調(diào)試工
具,但有時(shí)候,命令行的調(diào)試工具卻有著圖形化工具所不能完成的功能。讓我們一
一看來(lái)。

一個(gè)調(diào)試示例
——————

源程序:tst.c

1 #include
2
3 int func(int n)
4 {
5 int sum=0,i;
6 for(i=0; i
7 {
8 sum+=i;
9 }
10 return sum;
11 }
12
13
14 main()
15 {
16 int i;
17 long result = 0;
18 for(i=1; i<=100; i++)
19 {
20 result += i;
21 }
22
23 printf("result[1-100] = %d \n", result );
24 printf("result[1-250] = %d \n", func(250) );
25 }

編譯生成執(zhí)行文件:(Linux下)
hchen/test> cc -g tst.c -o tst

使用GDB調(diào)試:

hchen/test> gdb tst <---------- 啟動(dòng)GDB
GNU gdb 5.1.1
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-suse-linux"...
(gdb) l <-------------------- l命令相當(dāng)于list,從第一行開(kāi)始例出原碼。
1 #include
2
3 int func(int n)
4 {
5 int sum=0,i;
6 for(i=0; i
7 {
8 sum+=i;
9 }
10 return sum;
(gdb) <-------------------- 直接回車(chē)表示,重復(fù)上一次命令
11 }
12
13
14 main()
15 {
16 int i;
17 long result = 0;
18 for(i=1; i<=100; i++)
19 {
20 result += i;
(gdb) break 16 <-------------------- 設(shè)置斷點(diǎn),在源程序第16行處。
Breakpoint 1 at 0x8048496: file tst.c, line 16.
(gdb) break func <-------------------- 設(shè)置斷點(diǎn),在函數(shù)func()入口處。
Breakpoint 2 at 0x8048456: file tst.c, line 5.
(gdb) info break <-------------------- 查看斷點(diǎn)信息。
Num Type Disp Enb Address What
1 breakpoint keep y 0x08048496 in main at tst.c:16
2 breakpoint keep y 0x08048456 in func at tst.c:5
(gdb) r <--------------------- 運(yùn)行程序,run命令簡(jiǎn)寫(xiě)
Starting program: /home/hchen/test/tst

Breakpoint 1, main () at tst.c:17 <---------- 在斷點(diǎn)處停住。
17 long result = 0;
(gdb) n <--------------------- 單條語(yǔ)句執(zhí)行,next命令簡(jiǎn)寫(xiě)。
18 for(i=1; i<=100; i++)
(gdb) n
20 result += i;
(gdb) n
18 for(i=1; i<=100; i++)
(gdb) n
20 result += i;
(gdb) c <--------------------- 繼續(xù)運(yùn)行程序,continue命令簡(jiǎn)寫(xiě)。
Continuing.
result[1-100] = 5050 <----------程序輸出。

Breakpoint 2, func (n=250) at tst.c:5
5 int sum=0,i;
(gdb) n
6 for(i=1; i<=n; i++)
(gdb) p i <--------------------- 打印變量i的值,print命令簡(jiǎn)寫(xiě)。
$1 = 134513808
(gdb) n
8 sum+=i;
(gdb) n
6 for(i=1; i<=n; i++)
(gdb) p sum
$2 = 1
(gdb) n
8 sum+=i;
(gdb) p i
$3 = 2
(gdb) n
6 for(i=1; i<=n; i++)
(gdb) p sum
$4 = 3
(gdb) bt <--------------------- 查看函數(shù)堆棧。
#0 func (n=250) at tst.c:5
#1 0x080484e4 in main () at tst.c:24
#2 0x400409ed in __libc_start_main () from /lib/libc.so.6
(gdb) finish <--------------------- 退出函數(shù)。
Run till exit from #0 func (n=250) at tst.c:5
0x080484e4 in main () at tst.c:24
24 printf("result[1-250] = %d \n", func(250) );
Value returned is $6 = 31375
(gdb) c <--------------------- 繼續(xù)運(yùn)行。
Continuing.
result[1-250] = 31375 <----------程序輸出。

Program exited with code 027. <--------程序退出,調(diào)試結(jié)束。
(gdb) q <--------------------- 退出gdb。
hchen/test>

好了,有了以上的感性認(rèn)識(shí),還是讓我們來(lái)系統(tǒng)地認(rèn)識(shí)一下gdb吧。

使用GDB
————

一般來(lái)說(shuō)GDB主要調(diào)試的是C/C++的程序。要調(diào)試C/C++的程序,首先在編譯時(shí),我們
必須要把調(diào)試信息加到可執(zhí)行文件中。使用編譯器(cc/gcc/g++)的 -g 參數(shù)可以
做到這一點(diǎn)。如:

> cc -g hello.c -o hello
> g++ -g hello.cpp -o hello

如果沒(méi)有-g,你將看不見(jiàn)程序的函數(shù)名、變量名,所代替的全是運(yùn)行時(shí)的內(nèi)存地址。
當(dāng)你用-g把調(diào)試信息加入之后,并成功編譯目標(biāo)代碼以后,讓我們來(lái)看看如何用
gdb來(lái)調(diào)試他。

啟動(dòng)GDB的方法有以下幾種:

1、gdb
program也就是你的執(zhí)行文件,一般在當(dāng)然目錄下。

2、gdb core
用gdb同時(shí)調(diào)試一個(gè)運(yùn)行程序和core文件,core是程序非法執(zhí)行后core dump后產(chǎn)生的文件。

3、gdb

如果你的程序是一個(gè)服務(wù)程序,那么你可以指定這個(gè)服務(wù)程序運(yùn)行時(shí)的進(jìn)程ID。
gdb會(huì)自動(dòng)attach上去,并調(diào)試他。program應(yīng)該在PATH環(huán)境變量中搜索得到。

GDB啟動(dòng)時(shí),可以加上一些GDB的啟動(dòng)開(kāi)關(guān),詳細(xì)的開(kāi)關(guān)可以用gdb -help查看。我在下面只例舉一些比較常用的參數(shù):

-symbols
-s
從指定文件中讀取符號(hào)表。

-se file
從指定文件中讀取符號(hào)表信息,并把他用在可執(zhí)行文件中。

-core
-c
調(diào)試時(shí)core dump的core文件。

-directory
-d
加入一個(gè)源文件的搜索路徑。默認(rèn)搜索路徑是環(huán)境變量中PATH所定義的路徑。

GDB的命令概貌
———————

啟動(dòng)gdb后,就你被帶入gdb的調(diào)試環(huán)境中,就可以使用gdb的命令開(kāi)始調(diào)試程序了,gdb的命令可以使用help命令來(lái)查看,如下所示:

/home/hchen> gdb
GNU gdb 5.1.1
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-suse-linux".
(gdb) help
List of classes of commands:

aliases -- Aliases of other commands
breakpoints -- Making program stop at certain points
data -- Examining data
files -- Specifying and examining files
internals -- Maintenance commands
obscure -- Obscure features
running -- Running the program
stack -- Examining the stack
status -- Status inquiries
support -- Support facilities
tracepoints -- Tracing of program execution without stopping the program
user-defined -- User-defined commands

Type "help" followed by a class name for a list of commands in that class.
Type "help" followed by command name for full documentation.
Command name abbreviations are allowed if unambiguous.
(gdb)

gdb的命令很多,gdb把之分成許多個(gè)種類(lèi)。help命令只是例出gdb的命令種類(lèi),如果
要看種類(lèi)中的命令,可以使用help 命令,如:help breakpoints,查看設(shè)置斷點(diǎn)的所
有命令。也可以直接help 來(lái)查看命令的幫助。


gdb中,輸入命令時(shí),可以不用打全命令,只用打命令的前幾個(gè)字符就可以了,當(dāng)然,
命令的前幾個(gè)字符應(yīng)該要標(biāo)志著一個(gè)唯一的命令,在Linux下,你可以敲擊兩次TAB
鍵來(lái)補(bǔ)齊命令的全稱(chēng),如果有重復(fù)的,那么gdb會(huì)把其例出來(lái)。

示例一:在進(jìn)入函數(shù)func時(shí),設(shè)置一個(gè)斷點(diǎn)。可以敲入break func,

 

posted on 2009-08-04 08:38 chaosuper 閱讀(298) 評(píng)論(0)  編輯 收藏 引用

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美在线视频免费| 国产一区二区精品久久91| 亚洲天堂免费观看| 亚洲一级黄色片| 亚洲免费在线观看视频| 亚洲欧美精品伊人久久| 久久女同互慰一区二区三区| 欧美国产一区在线| 国产精品国产a级| 国产无遮挡一区二区三区毛片日本| 国产一区二区三区视频在线观看| 91久久精品久久国产性色也91 | 国产精品日韩二区| 久久―日本道色综合久久| 看片网站欧美日韩| 欧美电影美腿模特1979在线看| 欧美精品激情在线| 国产九九精品| 最新国产拍偷乱拍精品 | 国产一区二区三区视频在线观看 | 亚洲精品在线电影| 香蕉国产精品偷在线观看不卡 | 亚洲第一久久影院| 亚洲网站啪啪| 免费成人黄色av| 国产乱肥老妇国产一区二| 狠狠狠色丁香婷婷综合久久五月| 亚洲黄色av一区| 久久av一区二区三区| 亚洲精品日本| 久久一区激情| 国产女人精品视频| 99精品黄色片免费大全| 久久夜色精品一区| 亚洲综合99| 欧美人与禽性xxxxx杂性| 国产一区二区久久久| 亚洲永久免费观看| 亚洲六月丁香色婷婷综合久久| 欧美一级在线亚洲天堂| 欧美日韩视频专区在线播放| 亚洲高清在线播放| 久久九九电影| 欧美亚洲综合在线| 国产亚洲精品久久久久久| 亚洲亚洲精品三区日韩精品在线视频| 欧美激情亚洲视频| 久久一区欧美| 在线观看91久久久久久| 久久躁狠狠躁夜夜爽| 久久精品国产69国产精品亚洲 | 亚洲视频狠狠| 亚洲国产精品久久久久| 久久久精品日韩欧美| 国产日韩精品一区二区| 欧美一区二区三区四区视频| 999亚洲国产精| 国产精品久久久久久av福利软件| 亚洲伊人一本大道中文字幕| 亚洲视频欧洲视频| 国产精品久久久久久久久久久久| 亚洲综合色丁香婷婷六月图片| 一区二区三区www| 国产精品麻豆va在线播放| 午夜电影亚洲| 欧美激情久久久久| 一本色道久久综合狠狠躁篇的优点 | 女主播福利一区| 最新亚洲视频| 亚洲欧洲日本专区| 欧美日在线观看| 亚洲在线观看| 久久er精品视频| 怡红院精品视频在线观看极品| 欧美成人免费视频| 欧美久久婷婷综合色| 亚洲尤物精选| 欧美在线观看一区| 亚洲欧洲综合另类| 99在线精品视频| 久久www免费人成看片高清| 亚洲天堂偷拍| 在线观看91久久久久久| 亚洲黄色片网站| 国产精品v一区二区三区| 欧美在线二区| 欧美va天堂| 久久成人精品一区二区三区| 免费欧美视频| 欧美专区日韩专区| 欧美韩日高清| 久久精品一区二区国产| 欧美国产日韩一区二区| 亚洲性感激情| 美腿丝袜亚洲色图| 欧美一级大片在线免费观看| 久久蜜桃精品| 亚洲视频一区在线| 麻豆国产精品va在线观看不卡| 亚洲欧美影院| 欧美精品91| 欧美不卡在线| 国产一区二区高清| 一本色道久久88精品综合| 亚洲成色777777女色窝| 夜夜嗨av一区二区三区中文字幕| 激情成人av| 亚洲午夜成aⅴ人片| 日韩一级黄色片| 久久婷婷成人综合色| 欧美一级片在线播放| 欧美大色视频| 欧美成人免费观看| 国模套图日韩精品一区二区| 日韩亚洲欧美精品| 99国产精品| 欧美激情一区二区三区在线视频观看| 久久综合久久88| 国产女人18毛片水18精品| 亚洲精品极品| 亚洲精品一区二区在线| 欧美一区二区私人影院日本 | 久久精品综合网| 国产精品劲爆视频| 国产伦理一区| 亚洲国产精品久久人人爱蜜臀 | 美女视频黄a大片欧美| 国产精品捆绑调教| 99视频精品免费观看| 亚洲看片网站| 欧美激情欧美狂野欧美精品| 欧美1区2区3区| 韩国视频理论视频久久| 欧美亚洲日本国产| 久久xxxx| 在线看一区二区| 免费成人在线观看视频| 牛牛影视久久网| 亚洲高清久久久| 免费亚洲一区| 亚洲精品1区2区| 亚洲乱码国产乱码精品精天堂| 欧美激情一区二区三级高清视频| 亚洲国产婷婷香蕉久久久久久99 | 国产精品一卡二卡| 午夜国产不卡在线观看视频| 亚洲综合国产激情另类一区| 国产精品日韩一区二区三区| 亚洲女性裸体视频| 久久久99国产精品免费| 在线看片一区| 欧美另类在线播放| 亚洲无线一线二线三线区别av| 午夜精品美女久久久久av福利| 国产精品亚洲综合久久| 午夜精品区一区二区三| 免费在线看成人av| 免费成人av在线| 亚洲视频专区在线| 国产日韩欧美麻豆| 久久青草福利网站| 在线亚洲一区| 麻豆成人在线播放| 一区二区国产精品| 国产综合亚洲精品一区二| 欧美va亚洲va日韩∨a综合色| 日韩视频在线一区| 久久青草久久| 亚洲尤物视频在线| 最新日韩在线视频| 国产午夜精品全部视频播放| 欧美福利专区| 久久福利影视| 99视频精品免费观看| 麻豆精品网站| 午夜欧美精品| 日韩香蕉视频| 黄色成人在线网址| 国产精品丝袜xxxxxxx| 欧美成人在线网站| 欧美在线一二三四区| 亚洲视频网在线直播| 亚洲丁香婷深爱综合| 羞羞漫画18久久大片| 99精品视频一区| 亚洲国产高清aⅴ视频| 国产精品伊人日日| 欧美三级视频在线播放| 老牛影视一区二区三区| 国产精品人成在线观看免费| 久久午夜国产精品| 亚洲精品极品| 欧美成人精品福利| 久久精品人人做人人综合 | 亚洲精品一区二区在线| 黄色成人av网站| 国产一区二区精品丝袜| 国产精品夜夜夜| 国产精品黄色| 国产精品白丝av嫩草影院|