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

posts - 297,  comments - 15,  trackbacks - 0
strace命令用法

調(diào)用:
strace [ -dffhiqrtttTvxx ] [ -acolumn ] [ -eexpr ] ...
[ -ofile ] [ -ppid ] ... [ -sstrsize ] [ -uusername ] [ command [ arg ... ] ]

strace -c [ -eexpr ] ... [ -Ooverhead ] [ -Ssortby ] [ command [ arg ... ] ]
功能:
跟蹤程式執(zhí)行時(shí)的系統(tǒng)調(diào)用和所接收的信號.通常的用法是strace執(zhí)行一直到commande結(jié)束.
并且將所調(diào)用的系統(tǒng)調(diào)用的名稱、參數(shù)和返回值輸出到標(biāo)準(zhǔn)輸出或者輸出到-o指定的文件.
strace是一個(gè)功能強(qiáng)大的調(diào)試,分析診斷工具.你將發(fā)現(xiàn)他是一個(gè)極好的幫手在你要調(diào)試一個(gè)無法看到源碼或者源碼無法在編譯的程序.
你將輕松的學(xué)習(xí)到一個(gè)軟件是如何通過系統(tǒng)調(diào)用來實(shí)現(xiàn)他的功能的.而且作為一個(gè)程序設(shè)計(jì)師,你可以了解到在用戶態(tài)和內(nèi)核態(tài)是如何通過系統(tǒng)調(diào)用和信號來實(shí)現(xiàn)程序的功能的.
strace的每一行輸出包括系統(tǒng)調(diào)用名稱,然后是參數(shù)和返回值.這個(gè)例子:
strace cat /dev/null
他的輸出會(huì)有:
open(\"/dev/null\",O_RDONLY) = 3
有錯(cuò)誤產(chǎn)生時(shí),一般會(huì)返回-1.所以會(huì)有錯(cuò)誤標(biāo)志和描述:
open(\"/foor/bar\",)_RDONLY) = -1 ENOENT (no such file or directory)
信號將輸出喂信號標(biāo)志和信號的描述.跟蹤并中斷這個(gè)命令\"sleep 600\":
sigsuspend({}
--- SIGINT (Interrupt) ---
+++ killed by SIGINT +++
參數(shù)的輸出有些不一致.如shell命令中的 \">>tmp\",將輸出:
open(\"tmp\",O_WRONLY|O_APPEND|A_CREAT,0666) = 3
對于結(jié)構(gòu)指針,將進(jìn)行適當(dāng)?shù)娘@示.如:\"ls -l /dev/null\":
lstat(\"/dev/null\",{st_mode=S_IFCHR|0666},st_rdev=makdev[1,3],...}) = 0
請注意\"struct stat\" 的聲明和這里的輸出.lstat的第一個(gè)參數(shù)是輸入?yún)?shù),而第二個(gè)參數(shù)是向外傳值.
當(dāng)你嘗試\"ls -l\" 一個(gè)不存在的文件時(shí),會(huì)有:
lstat(/foot/ball\",0xb004) = -1 ENOENT (no such file or directory)
char*將作為C的字符串類型輸出.沒有字符串輸出時(shí)一般是char* 是一個(gè)轉(zhuǎn)義字符,只輸出字符串的長度.
當(dāng)字符串過長是會(huì)使用\"...\"省略.如在\"ls -l\"會(huì)有一個(gè)gepwuid調(diào)用讀取password文件:
read(3,\"root::0:0:System Administrator:/\"...,1024) = 422
當(dāng)參數(shù)是結(jié)構(gòu)數(shù)組時(shí),將按照簡單的指針和數(shù)組輸出如:
getgroups(4,[0,2,4,5]) = 4
關(guān)于bit作為參數(shù)的情形,也是使用方括號,并且用空格將每一項(xiàng)參數(shù)隔開.如:
sigprocmask(SIG_BLOCK,[CHLD TTOU],[]) = 0
這里第二個(gè)參數(shù)代表兩個(gè)信號SIGCHLD 和 SIGTTOU.如果bit型參數(shù)全部置位,則有如下的輸出:
sigprocmask(SIG_UNBLOCK,~[],NULL) = 0
這里第二個(gè)參數(shù)全部置位.

參數(shù)說明:
-c 統(tǒng)計(jì)每一系統(tǒng)調(diào)用的所執(zhí)行的時(shí)間,次數(shù)和出錯(cuò)的次數(shù)等.
-d 輸出strace關(guān)于標(biāo)準(zhǔn)錯(cuò)誤的調(diào)試信息.
-f 跟蹤由fork調(diào)用所產(chǎn)生的子進(jìn)程.
-ff 如果提供-o filename,則所有進(jìn)程的跟蹤結(jié)果輸出到相應(yīng)的filename.pid中,pid是各進(jìn)程的進(jìn)程號.
-F 嘗試跟蹤vfork調(diào)用.在-f時(shí),vfork不被跟蹤.
-h 輸出簡要的幫助信息.
-i 輸出系統(tǒng)調(diào)用的入口指針.
-q 禁止輸出關(guān)于脫離的消息.
-r 打印出相對時(shí)間關(guān)于,,每一個(gè)系統(tǒng)調(diào)用.
-t 在輸出中的每一行前加上時(shí)間信息.
-tt 在輸出中的每一行前加上時(shí)間信息,微秒級.
-ttt 微秒級輸出,以秒了表示時(shí)間.
-T 顯示每一調(diào)用所耗的時(shí)間.
-v 輸出所有的系統(tǒng)調(diào)用.一些調(diào)用關(guān)于環(huán)境變量,狀態(tài),輸入輸出等調(diào)用由于使用頻繁,默認(rèn)不輸出.
-V 輸出strace的版本信息.
-x 以十六進(jìn)制形式輸出非標(biāo)準(zhǔn)字符串
-xx 所有字符串以十六進(jìn)制形式輸出.
-a column
設(shè)置返回值的輸出位置.默認(rèn)為40.
-e expr
指定一個(gè)表達(dá)式,用來控制如何跟蹤.格式如下:
[qualifier=][!]value1[,value2]...
qualifier只能是 trace,abbrev,verbose,raw,signal,read,write其中之一.value是用來限定的符號或數(shù)字.默認(rèn)的qualifier是 trace.感嘆號是否定符號.例如:
-eopen等價(jià)于 -e trace=open,表示只跟蹤open調(diào)用.而-etrace!=open表示跟蹤除了open以外的其他調(diào)用.有兩個(gè)特殊的符號 all 和 none.
注意有些shell使用!來執(zhí)行歷史記錄里的命令,所以要使用\\.
-e trace=set
只跟蹤指定的系統(tǒng)調(diào)用.例如:-e trace=open,close,rean,write表示只跟蹤這四個(gè)系統(tǒng)調(diào)用.默認(rèn)的為set=all.
-e trace=file
只跟蹤有關(guān)文件操作的系統(tǒng)調(diào)用.
-e trace=process
只跟蹤有關(guān)進(jìn)程控制的系統(tǒng)調(diào)用.
-e trace=network
跟蹤與網(wǎng)絡(luò)有關(guān)的所有系統(tǒng)調(diào)用.
-e strace=signal
跟蹤所有與系統(tǒng)信號有關(guān)的系統(tǒng)調(diào)用
-e trace=ipc
跟蹤所有與進(jìn)程通訊有關(guān)的系統(tǒng)調(diào)用
-e abbrev=set
設(shè)定strace輸出的系統(tǒng)調(diào)用的結(jié)果集.-v 等與 abbrev=none.默認(rèn)為abbrev=all.
-e raw=set
將指定的系統(tǒng)調(diào)用的參數(shù)以十六進(jìn)制顯示.
-e signal=set
指定跟蹤的系統(tǒng)信號.默認(rèn)為all.如signal=!SIGIO(或者signal=!io),表示不跟蹤SIGIO信號.
-e read=set
輸出從指定文件中讀出的數(shù)據(jù).例如:
-e read=3,5
-e write=set
輸出寫入到指定文件中的數(shù)據(jù).
-o filename
將strace的輸出寫入文件filename
-p pid
跟蹤指定的進(jìn)程pid.
-s strsize
指定輸出的字符串的最大長度.默認(rèn)為32.文件名一直全部輸出.
-u username
以username的UID和GID執(zhí)行被跟蹤的命令.

 

 

用strace調(diào)試程序

         在理想世界里,每當(dāng)一個(gè)程序不能正常執(zhí)行一個(gè)功能時(shí),它就會(huì)給出一個(gè)有用的錯(cuò)誤提示,告訴你在足夠的改正錯(cuò)誤的線索。但遺憾的是,我們不是生活在理想世界里,起碼不總是生活在理想世界里。有時(shí)候一個(gè)程序出現(xiàn)了問題,你無法找到原因。

    這就是調(diào)試程序出現(xiàn)的原因。strace是一個(gè)必不可少的調(diào)試工具,strace用來監(jiān)視系統(tǒng)調(diào)用。你不僅可以調(diào)試一個(gè)新開始的程序,也可以調(diào)試一個(gè)已經(jīng)在運(yùn)行的程序(把strace綁定到一個(gè)已有的PID上面)。

    首先讓我們看一個(gè)真實(shí)的例子:

    [BOLD]啟動(dòng)KDE時(shí)出現(xiàn)問題[/BOLD]

    前一段時(shí)間,我在啟動(dòng)KDE的時(shí)候出了問題,KDE的錯(cuò)誤信息無法給我任何有幫助的線索。

    代碼:

    _KDE_IceTransSocketCreateListener: failed to bind listener
    _KDE_IceTransSocketUNIXCreateListener: ...SocketCreateListener() failed
    _KDE_IceTransMakeAllCOTSServerListeners: failed to create listener for local

    Cannot establish any listening sockets DCOPServer self-test failed.


    對我來說這個(gè)錯(cuò)誤信息沒有太多意義,只是一個(gè)對KDE來說至關(guān)重要的負(fù)責(zé)進(jìn)程間通信的程序無法啟動(dòng)。我還可以知道這個(gè)錯(cuò)誤和ICE協(xié)議(Inter Client Exchange)有關(guān),除此之外,我不知道什么是KDE啟動(dòng)出錯(cuò)的原因。

    我決定采用strace看一下在啟動(dòng)dcopserver時(shí)到底程序做了什么:

    代碼:

    strace -f -F -o ~/dcop-strace.txt dcopserver


    這里 -f -F選項(xiàng)告訴strace同時(shí)跟蹤fork和vfork出來的進(jìn)程,-o選項(xiàng)把所有strace輸出寫到~/dcop-strace.txt里面,dcopserver是要啟動(dòng)和調(diào)試的程序。

    再次出現(xiàn)錯(cuò)誤之后,我檢查了錯(cuò)誤輸出文件dcop-strace.txt,文件里有很多系統(tǒng)調(diào)用的記錄。在程序運(yùn)行出錯(cuò)前的有關(guān)記錄如下:

    代碼:

    27207 mkdir("/tmp/.ICE-unix", 0777) = -1 EEXIST (File exists)
    27207 lstat64("/tmp/.ICE-unix", {st_mode=S_IFDIR|S_ISVTX|0755, st_size=4096, ...}) = 0
    27207 unlink("/tmp/.ICE-unix/dcop27207-1066844596") = -1 ENOENT (No such file or directory)
    27207 bind(3, {sin_family=AF_UNIX, path="/tmp/.ICE-unix/dcop27207-1066844596"}, 38) = -1 EACCES (Permission denied)
    27207 write(2, "_KDE_IceTrans", 13) = 13
    27207 write(2, "SocketCreateListener: failed to "..., 46) = 46
    27207 close(3) = 0 27207 write(2, "_KDE_IceTrans", 13) = 13
    27207 write(2, "SocketUNIXCreateListener: ...Soc"..., 59) = 59
    27207 umask(0) = 0 27207 write(2, "_KDE_IceTrans", 13) = 13
    27207 write(2, "MakeAllCOTSServerListeners: fail"..., 64) = 64
    27207 write(2, "Cannot establish any listening s"..., 39) = 39


    其 中第一行顯示程序試圖創(chuàng)建/tmp/.ICE-unix目錄,權(quán)限為0777,這個(gè)操作因?yàn)槟夸浺呀?jīng)存在而失敗了。第二個(gè)系統(tǒng)調(diào)用(lstat64)檢查 了目錄狀態(tài),并顯示這個(gè)目錄的權(quán)限是0755,這里出現(xiàn)了第一個(gè)程序運(yùn)行錯(cuò)誤的線索:程序試圖創(chuàng)建屬性為0777的目錄,但是已經(jīng)存在了一個(gè)屬性為 0755的目錄。第三個(gè)系統(tǒng)調(diào)用(unlink)試圖刪除一個(gè)文件,但是這個(gè)文件并不存在。這并不奇怪,因?yàn)檫@個(gè)操作只是試圖刪掉可能存在的老文件。

    但 是,第四行確認(rèn)了錯(cuò)誤所在。他試圖綁定到/tmp/.ICE-unix/dcop27207-1066844596,但是出現(xiàn)了拒絕訪問錯(cuò)誤。. ICE_unix目錄的用戶和組都是root,并且只有所有者具有寫權(quán)限。一個(gè)非root用戶無法在這個(gè)目錄下面建立文件,如果把目錄屬性改成0777, 則前面的操作有可能可以執(zhí)行,而這正是第一步錯(cuò)誤出現(xiàn)時(shí)進(jìn)行過的操作。

    所以我運(yùn)行了chmod 0777 /tmp/.ICE-unix之后KDE就可以正常啟動(dòng)了,問題解決了,用strace進(jìn)行跟蹤調(diào)試只需要花很短的幾分鐘時(shí)間跟蹤程序運(yùn)行,然后檢查并分析輸出文件。

    說 明:運(yùn)行chmod 0777只是一個(gè)測試,一般不要把一個(gè)目錄設(shè)置成所有用戶可讀寫,同時(shí)不設(shè)置粘滯位(sticky bit)。給目錄設(shè)置粘滯位可以阻止一個(gè)用戶隨意刪除可寫目錄下面其他人的文件。一般你會(huì)發(fā)現(xiàn)/tmp目錄因?yàn)檫@個(gè)原因設(shè)置了粘滯位。KDE可以正常啟動(dòng) 之后,運(yùn)行chmod +t /tmp/.ICE-unix給.ICE_unix設(shè)置粘滯位。

    [BOLD]解決庫依賴問題[/BOLD]

    starce 的另一個(gè)用處是解決和動(dòng)態(tài)庫相關(guān)的問題。當(dāng)對一個(gè)可執(zhí)行文件運(yùn)行l(wèi)dd時(shí),它會(huì)告訴你程序使用的動(dòng)態(tài)庫和找到動(dòng)態(tài)庫的位置。但是如果你正在使用一個(gè)比較老 的glibc版本(2.2或更早),你可能會(huì)有一個(gè)有bug的ldd程序,它可能會(huì)報(bào)告在一個(gè)目錄下發(fā)現(xiàn)一個(gè)動(dòng)態(tài)庫,但是真正運(yùn)行程序時(shí)動(dòng)態(tài)連接程序 (/lib/ld-linux.so.2)卻可能到另外一個(gè)目錄去找動(dòng)態(tài)連接庫。這通常因?yàn)?etc/ld.so.conf和 /etc/ld.so.cache文件不一致,或者/etc/ld.so.cache被破壞。在glibc 2.3.2版本上這個(gè)錯(cuò)誤不會(huì)出現(xiàn),可能ld-linux的這個(gè)bug已經(jīng)被解決了。

    盡管這樣,ldd并不能把所有程序依賴的動(dòng)態(tài)庫列出 來,系統(tǒng)調(diào)用dlopen可以在需要的時(shí)候自動(dòng)調(diào)入需要的動(dòng)態(tài)庫,而這些庫可能不會(huì)被ldd列出來。作為glibc的一部分的NSS(Name Server Switch)庫就是一個(gè)典型的例子,NSS的一個(gè)作用就是告訴應(yīng)用程序到哪里去尋找系統(tǒng)帳號數(shù)據(jù)庫。應(yīng)用程序不會(huì)直接連接到NSS庫,glibc則會(huì)通 過dlopen自動(dòng)調(diào)入NSS庫。如果這樣的庫偶然丟失,你不會(huì)被告知存在庫依賴問題,但這樣的程序就無法通過用戶名解析得到用戶ID了。讓我們看一個(gè)例 子:

    whoami程序會(huì)給出你自己的用戶名,這個(gè)程序在一些需要知道運(yùn)行程序的真正用戶的腳本程序里面非常有用,whoami的一個(gè)示例輸出如下:
    代碼:

    # whoami
    root


    假設(shè)因?yàn)槟撤N原因在升級glibc的過程中負(fù)責(zé)用戶名和用戶ID轉(zhuǎn)換的庫NSS丟失,我們可以通過把nss庫改名來模擬這個(gè)環(huán)境:
    代碼:

    # mv /lib/libnss_files.so.2 /lib/libnss_files.so.2.backup
    # whoami
    whoami: cannot find username for UID 0


    這里你可以看到,運(yùn)行whoami時(shí)出現(xiàn)了錯(cuò)誤,ldd程序的輸出不會(huì)提供有用的幫助:
    代碼:

    # ldd /usr/bin/whoami
    libc.so.6 => /lib/libc.so.6 (0x4001f000)
    /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)


    你只會(huì)看到whoami依賴Libc.so.6和ld-linux.so.2,它沒有給出運(yùn)行whoami所必須的其他庫。這里時(shí)用strace跟蹤whoami時(shí)的輸出:
    代碼:

    strace -o whoami-strace.txt whoami

    open("/lib/libnss_files.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("/lib/i686/mmx/libnss_files.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/i686/mmx", 0xbffff190) = -1 ENOENT (No such file or directory)
    open("/lib/i686/libnss_files.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/i686", 0xbffff190) = -1 ENOENT (No such file or directory)
    open("/lib/mmx/libnss_files.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/mmx", 0xbffff190) = -1 ENOENT (No such file or directory)
    open("/lib/libnss_files.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib", {st_mode=S_IFDIR|0755, st_size=2352, ...}) = 0
    open("/usr/lib/i686/mmx/libnss_files.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib/i686/mmx", 0xbffff190) = -1 ENOENT (No such file or directory)
    open("/usr/lib/i686/libnss_files.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)


    你可以發(fā)現(xiàn)在不同目錄下面查找libnss.so.2的嘗試,但是都失敗了。如果沒有strace這樣的工具,很難發(fā)現(xiàn)這個(gè)錯(cuò)誤是由于缺少動(dòng)態(tài)庫造成的?,F(xiàn)在只需要找到libnss.so.2并把它放回到正確的位置就可以了。

    [BOLD]限制strace只跟蹤特定的系統(tǒng)調(diào)用[/BOLD]

    如果你已經(jīng)知道你要找什么,你可以讓strace只跟蹤一些類型的系統(tǒng)調(diào)用。例如,你需要看看在configure腳本里面執(zhí)行的程序,你需要監(jiān)視的系統(tǒng)調(diào)用就是execve。讓strace只記錄execve的調(diào)用用這個(gè)命令:

    代碼:

    strace -f -o configure-strace.txt -e execve ./configure


    部分輸出結(jié)果為:
    代碼:

    2720 execve("/usr/bin/expr", ["expr", "a", ":", "(a)"], [/* 31 vars */]) = 0
    2725 execve("/bin/basename", ["basename", "./configure"], [/* 31 vars */]) = 0
    2726 execve("/bin/chmod", ["chmod", "+x", "conftest.sh"], [/* 31 vars */]) = 0
    2729 execve("/bin/rm", ["rm", "-f", "conftest.sh"], [/* 31 vars */]) = 0
    2731 execve("/usr/bin/expr", ["expr", "99", "+", "1"], [/* 31 vars */]) = 0
    2736 execve("/bin/ln", ["ln", "-s", "conf2693.file", "conf2693"], [/* 31 vars */]) = 0


    你 已經(jīng)看到了,strace不僅可以被程序員使用,普通系統(tǒng)管理員和用戶也可以使用strace來調(diào)試系統(tǒng)錯(cuò)誤。必須承認(rèn),strace的輸出不總是容易理 解,但是很多輸出對大多數(shù)人來說是不重要的。你會(huì)慢慢學(xué)會(huì)從大量輸出中找到你可能需要的信息,像權(quán)限錯(cuò)誤,文件未找到之類的,那時(shí)strace就會(huì)成為一 個(gè)有力的工具了。
    from:
    http://blog.chinaunix.net/u1/55468/showart_2003061.html


posted on 2010-02-18 00:05 chatler 閱讀(519) 評論(0)  編輯 收藏 引用 所屬分類: Linux_Coding
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺這個(gè)博客還是不錯(cuò),雖然做的東西和我不大相關(guān),覺得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产综合自拍| 久久综合狠狠综合久久综青草| 99成人在线| 日韩视频免费观看高清完整版| 亚洲人屁股眼子交8| 亚洲人成在线影院| 中文av一区二区| 欧美一区二区三区日韩| 裸体丰满少妇做受久久99精品| 免费观看在线综合色| 亚洲国产精品悠悠久久琪琪| 亚洲精品一区二区三区在线观看| 在线视频亚洲欧美| 欧美在线电影| 欧美激情综合网| 国产欧美一区二区在线观看| 欧美在线一区二区| 久久婷婷久久| 欧美视频在线视频| 伊人男人综合视频网| 亚洲精品国产精品久久清纯直播| 亚洲一区二区三区成人在线视频精品| 久久精品日产第一区二区三区| 亚洲电影免费观看高清| 亚洲自拍三区| 欧美精品二区| 国产麻豆精品久久一二三| 亚洲国产精品一区二区三区| 午夜国产欧美理论在线播放| 免费不卡亚洲欧美| 夜夜爽av福利精品导航 | 久久成人资源| 亚洲高清一区二| 亚洲一区二区免费| 美女视频黄 久久| 国产日韩欧美日韩大片| 日韩一级精品视频在线观看| 久久久www成人免费精品| 日韩一区二区电影网| 猛男gaygay欧美视频| 国产欧美亚洲视频| 亚洲一区影音先锋| 亚洲精品一区二区三区四区高清| 猛干欧美女孩| 亚洲国产高清在线| 久久先锋影音av| 午夜精品视频在线观看一区二区 | 亚洲综合色丁香婷婷六月图片| 欧美国产日韩一区二区三区| 在线精品一区二区| 久久综合九色综合欧美就去吻| 午夜精品理论片| 国产欧美精品一区aⅴ影院| 一区二区三区导航| 亚洲黄色视屏| 欧美激情一区在线| 一本一本大道香蕉久在线精品| 欧美成人亚洲成人| 久久婷婷色综合| 最新国产成人在线观看| 亚洲成色777777在线观看影院| 久久婷婷蜜乳一本欲蜜臀| 在线观看视频一区二区| 欧美凹凸一区二区三区视频| 久久免费视频这里只有精品| 亚洲国产精品久久人人爱蜜臀 | 久久综合中文字幕| 久久精品av麻豆的观看方式| 久久精品最新地址| 国产欧美亚洲精品| 久久一区二区三区国产精品 | 中文网丁香综合网| 国产欧美日韩视频在线观看| 久久精品国产成人| 久久婷婷久久| 99视频在线精品国自产拍免费观看| 亚洲精品欧美专区| 国产精品久久影院| 久久精品视频在线播放| 久热精品视频在线| 99国内精品久久久久久久软件| 一二三区精品福利视频| 国产精品永久免费| 久久中文字幕一区二区三区| 欧美丰满高潮xxxx喷水动漫| 亚洲女性裸体视频| 久久综合九色欧美综合狠狠| 亚洲图片欧洲图片日韩av| 欧美一区二区视频网站| 日韩午夜剧场| 亚洲欧美日韩在线| 亚洲日本一区二区| 日韩视频在线观看国产| 国产欧美在线播放| 亚洲日本欧美在线| 国产精品美女www爽爽爽| 女生裸体视频一区二区三区| 国产精品国产| 亚洲国产精选| 激情丁香综合| 亚洲综合色婷婷| 日韩视频免费观看高清在线视频 | 亚洲高清在线观看一区| 在线综合+亚洲+欧美中文字幕| 极品尤物久久久av免费看| 亚洲精品日本| 影院欧美亚洲| 亚洲香蕉在线观看| 亚洲黄色片网站| 欧美夜福利tv在线| 欧美在线视频观看| 久久久久综合网| 欧美一区二区女人| 欧美日韩国产系列| 亚洲成色www久久网站| 国内一区二区在线视频观看| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 樱桃国产成人精品视频| 这里只有精品视频在线| 亚洲国产精品一区二区久| 欧美影院成人| 欧美亚洲日本国产| 欧美激情性爽国产精品17p| 一区视频在线播放| 在线亚洲免费视频| 日韩视频一区二区| 免费中文字幕日韩欧美| 久久一二三区| 国产一区二区三区免费在线观看| 亚洲一二三区视频在线观看| 在线视频欧美日韩| 欧美日韩在线视频一区| 亚洲人线精品午夜| 亚洲国产第一| 裸体素人女欧美日韩| 欧美暴力喷水在线| 亚洲国内精品在线| 久久综合网络一区二区| 欧美国产精品v| 亚洲人体1000| 欧美久久成人| 日韩亚洲一区在线播放| 夜夜夜久久久| 国产精品久久久久久亚洲毛片| 亚洲美女视频在线观看| 夜夜爽www精品| 国产精品成人午夜| 亚洲欧美日韩精品| 久久精品中文字幕一区二区三区| 国产一区二区三区视频在线观看| 欧美一区二区三区四区在线观看| 久久精品国产久精国产思思| 韩国一区二区三区在线观看 | 日韩视频在线观看国产| 欧美韩日精品| 9i看片成人免费高清| 欧美亚洲一区三区| 狠狠网亚洲精品| 欧美精品v国产精品v日韩精品| 99re6热只有精品免费观看 | 在线精品国精品国产尤物884a| 噜噜噜噜噜久久久久久91| 亚洲国产精品一区二区第四页av| 亚洲日本电影在线| 国产精品一区二区久久国产| 久久精品99国产精品| 亚洲国产精品国自产拍av秋霞| 亚洲深夜福利网站| 激情久久久久久久| 欧美日精品一区视频| 欧美一级在线视频| 欧美高清在线一区二区| 亚洲视频一区在线| 狠狠爱综合网| 欧美日韩国产一级| 久久亚洲风情| 国产精品99久久不卡二区| 久久久亚洲影院你懂的| 日韩一区二区福利| 国产一区二区黄色| 欧美三级乱码| 久久婷婷激情| 亚洲欧美日韩精品久久亚洲区| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩网站在线观看| 国产一区二区在线观看免费播放| 欧美日韩国产精品专区| 欧美在线网站| 艳女tv在线观看国产一区| 久久综合伊人77777尤物| 国产精品视频免费观看| 久久免费视频网站| 性欧美1819sex性高清| 91久久国产综合久久蜜月精品| 欧美一区网站| 亚洲一级黄色| 一区二区三区国产精华| 亚洲国语精品自产拍在线观看| 国产欧美一区二区三区视频| 欧美午夜不卡视频|