日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

strace命令_在软件部署中使用 strace 进行调试

發(fā)布時(shí)間:2024/7/23 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 strace命令_在软件部署中使用 strace 进行调试 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
我最喜歡的用來解決“為什么這個軟件無法在這臺機(jī)器上運(yùn)行?”這類問題的工具就是 strace。
-- Simon Arneaud(作者)

我的大部分工作都涉及到部署軟件系統(tǒng),這意味著我需要花費(fèi)很多時(shí)間來解決以下問題:

  • 這個軟件可以在原開發(fā)者的機(jī)器上工作,但是為什么不能在我這里運(yùn)行?
  • 這個軟件昨天可以在我的機(jī)器上工作,但是為什么今天就不行?

這是一種調(diào)試的類型,但是與一般的軟件調(diào)試有所不同。一般的調(diào)試通常只關(guān)心代碼的邏輯,但是在軟件部署中的調(diào)試關(guān)注的是程序的代碼和它所在的運(yùn)行環(huán)境之間的相互影響。即便問題的根源是代碼的邏輯錯誤,但軟件顯然可以在別的機(jī)器上運(yùn)行的事實(shí)意味著這類問題與運(yùn)行環(huán)境密切相關(guān)。

所以,在軟件部署過程中,我沒有使用傳統(tǒng)的調(diào)試工具(例如 gdb),而是選擇了其它工具進(jìn)行調(diào)試。我最喜歡的用來解決“為什么這個軟件無法在這臺機(jī)器上運(yùn)行?”這類問題的工具就是 strace。

什么是 strace?

strace 是一個用來“追蹤系統(tǒng)調(diào)用”的工具。它主要是一個 Linux 工具,但是你也可以在其它系統(tǒng)上使用類似的工具(例如 DTrace 和 ktrace)。

它的基本用法非常簡單。只需要在 strace 后面跟上你需要運(yùn)行的命令,它就會顯示出該命令觸發(fā)的所有系統(tǒng)調(diào)用(你可能需要先安裝好 strace):

$ strace echo Hello ...Snip lots of stuff... write(1, "Hellon", 6) = 6 close(1) = 0 close(2) = 0 exit_group(0) = ? +++ exited with 0 +++

這些系統(tǒng)調(diào)用都是什么?它們就像是操作系統(tǒng)內(nèi)核提供的 API。很久以前,軟件擁有直接訪問硬件的權(quán)限。如果軟件需要在屏幕上顯示一些東西,它將會與視頻硬件的端口和內(nèi)存映射寄存器糾纏不清。當(dāng)多任務(wù)操作系統(tǒng)變得流行以后,這就導(dǎo)致了混亂的局面,因?yàn)椴煌膽?yīng)用程序?qū)ⅰ盃帄Z”硬件,并且一個應(yīng)用程序的錯誤可能致使其它應(yīng)用程序崩潰,甚至導(dǎo)致整個系統(tǒng)崩潰。所以 CPU 開始支持多種不同的特權(quán)模式(或者稱為“保護(hù)環(huán)”)。它們讓操作系統(tǒng)內(nèi)核在具有完全硬件訪問權(quán)限的最高特權(quán)模式下運(yùn)行,于此同時(shí),其它在低特權(quán)模式下運(yùn)行的應(yīng)用程序必須通過向內(nèi)核發(fā)起系統(tǒng)調(diào)用才能夠與硬件進(jìn)行交互。

在二進(jìn)制級別上,發(fā)起系統(tǒng)調(diào)用相比簡單的函數(shù)調(diào)用有一些區(qū)別,但是大部分程序都使用標(biāo)準(zhǔn)庫提供的封裝函數(shù)。例如,POSIX C 標(biāo)準(zhǔn)庫包含一個 write() 函數(shù),該函數(shù)包含用于進(jìn)行 write 系統(tǒng)調(diào)用的所有與硬件體系結(jié)構(gòu)相關(guān)的代碼。

簡單來說,一個應(yīng)用程序與其環(huán)境(計(jì)算機(jī)系統(tǒng))的交互都是通過系統(tǒng)調(diào)用來完成的。所以當(dāng)軟件在一臺機(jī)器上可以工作但是在另一臺機(jī)器無法工作的時(shí)候,追蹤系統(tǒng)調(diào)用是一個很好的查錯方法。具體地說,你可以通過追蹤系統(tǒng)調(diào)用分析以下典型操作:

  • 控制臺輸入與輸出 (IO)
  • 網(wǎng)絡(luò) IO
  • 文件系統(tǒng)訪問以及文件 IO
  • 進(jìn)程/線程生命周期管理
  • 原始內(nèi)存管理
  • 訪問特定的設(shè)備驅(qū)動

什么時(shí)候可以使用 strace?

理論上,strace 適用于任何用戶空間程序,因?yàn)樗械挠脩艨臻g程序都需要進(jìn)行系統(tǒng)調(diào)用。strace 對于已編譯的低級程序最有效果,但如果你可以避免運(yùn)行時(shí)環(huán)境和解釋器帶來的大量額外輸出,則仍然可以與 Python 等高級語言程序一起使用。

當(dāng)軟件在一臺機(jī)器上正常工作,但在另一臺機(jī)器上卻不能正常工作,同時(shí)拋出了有關(guān)文件、權(quán)限或者不能運(yùn)行某某命令等模糊的錯誤信息時(shí),strace 往往能大顯身手。不幸的是,它不能診斷高等級的問題,例如數(shù)字證書驗(yàn)證錯誤等。這些問題通常需要組合使用 strace(有時(shí)候是 ltrace)和其它高級工具(例如使用 openssl 命令行工具調(diào)試數(shù)字證書錯誤)。

本文中的示例基于獨(dú)立的服務(wù)器,但是對系統(tǒng)調(diào)用的追蹤通常也可以在更復(fù)雜的部署平臺上完成,僅需要找到合適的工具。

一個簡單的例子

假設(shè)你正在嘗試運(yùn)行一個叫做 foo 的服務(wù)器應(yīng)用程序,但是發(fā)生了以下情況:

$ foo Error opening configuration file: No such file or directory

顯然,它沒有找到你已經(jīng)寫好的配置文件。之所以會發(fā)生這種情況,是因?yàn)榘芾砉ぞ哂袝r(shí)候在編譯應(yīng)用程序時(shí)指定了自定義的路徑,所以你應(yīng)當(dāng)遵循特定發(fā)行版提供的安裝指南。如果錯誤信息告訴你正確的配置文件應(yīng)該在什么地方,你就可以在幾秒鐘內(nèi)解決這個問題,但如果沒有告訴你呢?你該如何找到正確的路徑?

如果你有權(quán)訪問源代碼,則可以通過閱讀源代碼來解決問題。這是一個好的備用計(jì)劃,但不是最快的解決方案。你還可以使用類似 gdb 的單步調(diào)試器來觀察程序的行為,但使用專門用于展示程序與系統(tǒng)環(huán)境交互作用的工具 strace 更加有效。

一開始, strace 產(chǎn)生的大量輸出可能會讓你不知所措,幸好你可以忽略其中大部分的無用信息。我經(jīng)常使用 -o 參數(shù)把輸出的追蹤結(jié)果保存到單獨(dú)的文件里:

$ strace -o /tmp/trace foo Error opening configuration file: No such file or directory $ cat /tmp/trace execve("foo", ["foo"], 0x7ffce98dc010 /* 16 vars */) = 0 brk(NULL) = 0x56363b3fb000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=25186, ...}) = 0 mmap(NULL, 25186, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2f12cf1000 close(3) = 0 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "177ELF21130000000030>01000260A200000"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=1824496, ...}) = 0 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2f12cef000 mmap(NULL, 1837056, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2f12b2e000 mprotect(0x7f2f12b50000, 1658880, PROT_NONE) = 0 mmap(0x7f2f12b50000, 1343488, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22000) = 0x7f2f12b50000 mmap(0x7f2f12c98000, 311296, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16a000) = 0x7f2f12c98000 mmap(0x7f2f12ce5000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b6000) = 0x7f2f12ce5000 mmap(0x7f2f12ceb000, 14336, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2f12ceb000 close(3) = 0 arch_prctl(ARCH_SET_FS, 0x7f2f12cf0500) = 0 mprotect(0x7f2f12ce5000, 16384, PROT_READ) = 0 mprotect(0x56363b08b000, 4096, PROT_READ) = 0 mprotect(0x7f2f12d1f000, 4096, PROT_READ) = 0 munmap(0x7f2f12cf1000, 25186) = 0 openat(AT_FDCWD, "/etc/foo/config.json", O_RDONLY) = -1 ENOENT (No such file or directory) dup(2) = 3 fcntl(3, F_GETFL) = 0x2 (flags O_RDWR) brk(NULL) = 0x56363b3fb000 brk(0x56363b41c000) = 0x56363b41c000 fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0x8), ...}) = 0 write(3, "Error opening configuration file"..., 60) = 60 close(3) = 0 exit_group(1) = ? +++ exited with 1 +++

strace 輸出的第一頁通常是低級的進(jìn)程啟動過程。(你可以看到很多 mmap、mprotect、brk 調(diào)用,這是用來分配原始內(nèi)存和映射動態(tài)鏈接庫的。)實(shí)際上,在查找錯誤時(shí),最好從下往上閱讀 strace 的輸出。你可以看到 write 調(diào)用在最后返回了錯誤信息。如果你向上找,你將會看到第一個失敗的系統(tǒng)調(diào)用是 openat,它在嘗試打開 /etc/foo/config.json 時(shí)拋出了 ENOENT (“No such file or directory”)的錯誤。現(xiàn)在我們已經(jīng)知道了配置文件應(yīng)該放在哪里。

這是一個簡單的例子,但我敢說在 90% 的情況下,使用 strace 進(jìn)行調(diào)試不需要更多復(fù)雜的工作。以下是完整的調(diào)試步驟:

  • 從程序中獲得含糊不清的錯誤信息
  • 使用 strace 運(yùn)行程序
  • 在輸出中找到錯誤信息
  • 往前追溯并找到第一個失敗的系統(tǒng)調(diào)用
  • 第四步中的系統(tǒng)調(diào)用很可能向你顯示出問題所在。

    小技巧

    在開始更加復(fù)雜的調(diào)試之前,這里有一些有用的調(diào)試技巧幫助你高效使用 strace:

    man 是你的朋友

    在很多 *nix 操作系統(tǒng)中,你可以通過 man syscalls 查看系統(tǒng)調(diào)用的列表。你將會看到類似于 brk(2) 之類的東西,這意味著你可以通過運(yùn)行 man 2 brk 得到與此相關(guān)的更多信息。

    一個小問題:man 2 fork 會顯示出在 GNU libc 里封裝的 fork() 手冊頁,而 fork() 現(xiàn)在實(shí)際上是由 clone 系統(tǒng)調(diào)用實(shí)現(xiàn)的。fork 的語義與 clone 相同,但是如果我寫了一個含有 fork() 的程序并使用 strace 去調(diào)試它,我將找不到任何關(guān)于 fork 調(diào)用的信息,只能看到 clone 調(diào)用。如果將源代碼與 strace 的輸出進(jìn)行比較的時(shí)候,像這種問題會讓人感到困惑。

    使用 -o 將輸出保存到文件

    strace 可以生成很多輸出,所以將輸出保存到單獨(dú)的文件是很有幫助的(就像上面的例子一樣)。它還能夠在控制臺中避免程序自身的輸出與 strace 的輸出發(fā)生混淆。

    使用 -s 查看更多的參數(shù)

    你可能已經(jīng)注意到,錯誤信息的第二部分沒有出現(xiàn)在上面的例子中。這是因?yàn)?strace 默認(rèn)僅顯示字符串參數(shù)的前 32 個字節(jié)。如果你需要捕獲更多參數(shù),請向 strace 追加類似于 -s 128 之類的參數(shù)。

    -y 使得追蹤文件或套接字更加容易

    “一切皆文件”意味著 *nix 系統(tǒng)通過文件描述符進(jìn)行所有 IO 操作,不管是真實(shí)的文件還是通過網(wǎng)絡(luò)或者進(jìn)程間管道。這對于編程而言是很方便的,但是在追蹤系統(tǒng)調(diào)用時(shí),你將很難分辨出 read 和 write 的真實(shí)行為。

    -y 參數(shù)使 strace 在注釋中注明每個文件描述符的具體指向。

    使用 -p 附加到正在運(yùn)行的進(jìn)程中

    正如我們將在后面的例子中看到的,有時(shí)候你想追蹤一個正在運(yùn)行的程序。如果你知道這個程序的進(jìn)程號為 1337 (可以通過 ps 查詢),則可以這樣操作:

    $ strace -p 1337 ...system call trace output...

    你可能需要 root 權(quán)限才能運(yùn)行。

    使用 -f 追蹤子進(jìn)程

    strace 默認(rèn)只追蹤一個進(jìn)程。如果這個進(jìn)程產(chǎn)生了一個子進(jìn)程,你將會看到創(chuàng)建子進(jìn)程的系統(tǒng)調(diào)用(一般是 clone),但是你看不到子進(jìn)程內(nèi)觸發(fā)的任何調(diào)用。

    如果你認(rèn)為在子進(jìn)程中存在錯誤,則需要使用 -f 參數(shù)啟用子進(jìn)程追蹤功能。這樣做的缺點(diǎn)是輸出的內(nèi)容會讓人更加困惑。當(dāng)追蹤一個進(jìn)程時(shí),strace 顯示的是單個調(diào)用事件流。當(dāng)追蹤多個進(jìn)程的時(shí)候,你將會看到以 <unfinished ...> 開始的初始調(diào)用,接著是一系列針對其它線程的調(diào)用,最后才出現(xiàn)以 <... foocall resumed> 結(jié)束的初始調(diào)用。此外,你可以使用 -ff 參數(shù)將所有的調(diào)用分離到不同的文件中(查看 strace 手冊 獲取更多信息)。

    使用 -e 進(jìn)行過濾

    正如你所看到的,默認(rèn)的追蹤輸出是所有的系統(tǒng)調(diào)用。你可以使用 -e 參數(shù)過濾你需要追蹤的調(diào)用(查看 strace 手冊)。這樣做的好處是運(yùn)行過濾后的 strace 比起使用 grep 進(jìn)行二次過濾要更快。老實(shí)說,我大部分時(shí)間都不會被打擾。

    并非所有的錯誤都是不好的

    一個簡單而常用的例子是一個程序在多個位置搜索文件,例如 shell 搜索哪個 bin/ 目錄包含可執(zhí)行文件:

    $ strace sh -c uname ... stat("/home/user/bin/uname", 0x7ffceb817820) = -1 ENOENT (No such file or directory) stat("/usr/local/bin/uname", 0x7ffceb817820) = -1 ENOENT (No such file or directory) stat("/usr/bin/uname", {st_mode=S_IFREG|0755, st_size=39584, ...}) = 0 ...

    “錯誤信息之前的最后一次失敗調(diào)用”這種啟發(fā)式方法非常適合于查找錯誤。無論如何,自下而上地查找是有道理的。

    C 編程指南非常有助于理解系統(tǒng)調(diào)用

    標(biāo)準(zhǔn) C 庫函數(shù)調(diào)用不屬于系統(tǒng)調(diào)用,但它們僅是系統(tǒng)調(diào)用之上的唯一一個薄層。所以如果你了解(甚至只是略知一二)如何使用 C 語言,那么閱讀系統(tǒng)調(diào)用追蹤信息就非常容易。例如,如果你在調(diào)試網(wǎng)絡(luò)系統(tǒng)調(diào)用,你可以嘗試略讀 Beej 經(jīng)典的《網(wǎng)絡(luò)編程指南》。

    一個更復(fù)雜的調(diào)試?yán)?/h2>

    就像我說的那樣,簡單的調(diào)試?yán)颖憩F(xiàn)了我在大部分情況下如何使用 strace。然而,有時(shí)候需要一些更加細(xì)致的工作,所以這里有一個稍微復(fù)雜(且真實(shí))的例子。

    bcron 是一個任務(wù)調(diào)度器,它是經(jīng)典 *nix cron 守護(hù)程序的另一種實(shí)現(xiàn)。它已經(jīng)被安裝到一臺服務(wù)器上,但是當(dāng)有人嘗試編輯作業(yè)時(shí)間表時(shí),發(fā)生了以下情況:

    # crontab -e -u logs bcrontab: Fatal: Could not create temporary file

    好的,現(xiàn)在 bcron 嘗試寫入一些文件,但是它失敗了,也沒有告訴我們原因。以下是 strace 的輸出:

    # strace -o /tmp/trace crontab -e -u logs bcrontab: Fatal: Could not create temporary file # cat /tmp/trace ... openat(AT_FDCWD, "bcrontab.14779.1573691864.847933", O_RDONLY) = 3 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82049b4000 read(3, "#Ansible: logsaggn20 14 * * * lo"..., 8192) = 150 read(3, "", 8192) = 0 munmap(0x7f82049b4000, 8192) = 0 close(3) = 0 socket(AF_UNIX, SOCK_STREAM, 0) = 3 connect(3, {sa_family=AF_UNIX, sun_path="/var/run/bcron-spool"}, 110) = 0 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82049b4000 write(3, "156:Slogs0#Ansible: logsaggn20 1"..., 161) = 161 read(3, "32:ZCould not create temporary f"..., 8192) = 36 munmap(0x7f82049b4000, 8192) = 0 close(3) = 0 write(2, "bcrontab: Fatal: Could not creat"..., 49) = 49 unlink("bcrontab.14779.1573691864.847933") = 0 exit_group(111) = ? +++ exited with 111 +++

    在程序結(jié)束之前有一個 write 的錯誤信息,但是這次有些不同。首先,在此之前沒有任何相關(guān)的失敗系統(tǒng)調(diào)用。其次,我們看到這個錯誤信息是由 read 從別的地方讀取而來的。這看起來像是真正的錯誤發(fā)生在別的地方,而 bcrontab 只是在轉(zhuǎn)播這些信息。

    如果你查閱了 man 2 read,你將會看到 read 的第一個參數(shù) (3) 是一個文件描述符,這是 *nix 操作系統(tǒng)用于所有 IO 操作的句柄。你該如何知道文件描述符 3 代表什么?在這種情況下,你可以使用 -y 參數(shù)運(yùn)行 strace(如上文所述),它將會在注釋里告訴你文件描述符的具體指向,但是了解如何從上面這種輸出中分析追蹤結(jié)果是很有用的。

    一個文件描述符可以來自于許多系統(tǒng)調(diào)用之一(這取決于它是用于控制臺、網(wǎng)絡(luò)套接字還是真實(shí)文件等的描述符),但不論如何,我們都可以搜索返回值為 3 的系統(tǒng)調(diào)用(例如,在 strace 的輸出中查找 =3)。在這次 strace 中可以看到有兩個這樣的調(diào)用:最上面的 openat 以及中間的 socket。openat 打開一個文件,但是緊接著的 close(3) 表明其已經(jīng)被關(guān)閉。(注意:文件描述符可以在打開并關(guān)閉后重復(fù)使用。)所以 socket 調(diào)用才是與此相關(guān)的(它是在 read 之前的最后一個),這告訴我們 brcontab 正在與一個網(wǎng)絡(luò)套接字通信。在下一行,connect 表明文件描述符 3 是一個連接到 /var/run/bcron-spool 的 Unix 域套接字。

    因此,我們需要弄清楚 Unix 套接字的另一側(cè)是哪個進(jìn)程在監(jiān)聽。有兩個巧妙的技巧適用于在服務(wù)器部署中調(diào)試。一個是使用 netstat 或者較新的 ss。這兩個命令都描述了當(dāng)前系統(tǒng)中活躍的網(wǎng)絡(luò)套接字,使用 -l 參數(shù)可以顯示出處于監(jiān)聽狀態(tài)的套接字,而使用 -p 參數(shù)可以得到正在使用該套接字的程序信息。(它們還有更多有用的選項(xiàng),但是這兩個已經(jīng)足夠完成工作了。)

    # ss -pl | grep /var/run/bcron-spool u_str LISTEN 0 128 /var/run/bcron-spool 1466637 * 0 users:(("unixserver",pid=20629,fd=3))

    這告訴我們 /var/run/bcron-spool 套接字的監(jiān)聽程序是 unixserver 這個命令,它的進(jìn)程 ID 為 20629。(巧合的是,這個程序也使用文件描述符 3 去連接這個套接字。)

    第二個常用的工具就是使用 lsof 查找相同的信息。它可以列出當(dāng)前系統(tǒng)中打開的所有文件(或文件描述符)。或者,我們可以得到一個具體文件的信息:

    # lsof /var/run/bcron-spool COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME unixserve 20629 cron 3u unix 0x000000005ac4bd83 0t0 1466637 /var/run/bcron-spool type=STREAM

    進(jìn)程 20629 是一個常駐進(jìn)程,所以我們可以使用 strace -o /tmp/trace -p 20629 去查看該進(jìn)程的系統(tǒng)調(diào)用。如果我們在另一個終端嘗試編輯 cron 的計(jì)劃任務(wù)表,就可以在錯誤發(fā)生時(shí)捕獲到以下信息:

    accept(3, NULL, NULL) = 4 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7faa47c44810) = 21181 close(4) = 0 accept(3, NULL, NULL) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=21181, si_uid=998, si_status=0, si_utime=0, si_stime=0} --- wait4(0, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG|WSTOPPED, NULL) = 21181 wait4(0, 0x7ffe6bc36764, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes) rt_sigaction(SIGCHLD, {sa_handler=0x55d244bdb690, sa_mask=[CHLD], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7faa47ab9840}, {sa_handler=0x55d244bdb690, sa_mask=[CHLD], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7faa47ab9840}, 8) = 0 rt_sigreturn({mask=[]}) = 43 accept(3, NULL, NULL) = 4 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7faa47c44810) = 21200 close(4) = 0 accept(3, NULL, NULL) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=21200, si_uid=998, si_status=111, si_utime=0, si_stime=0} --- wait4(0, [{WIFEXITED(s) && WEXITSTATUS(s) == 111}], WNOHANG|WSTOPPED, NULL) = 21200 wait4(0, 0x7ffe6bc36764, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes) rt_sigaction(SIGCHLD, {sa_handler=0x55d244bdb690, sa_mask=[CHLD], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7faa47ab9840}, {sa_handler=0x55d244bdb690, sa_mask=[CHLD], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7faa47ab9840}, 8) = 0 rt_sigreturn({mask=[]}) = 43 accept(3, NULL, NULL

    (最后一個 accept 調(diào)用沒有在追蹤期間完成。)不幸的是,這次追蹤沒有包含我們想要的錯誤信息。我們沒有觀察到 bcrontan 往套接字發(fā)送或接受的任何信息。然而,我們看到了很多進(jìn)程管理操作(clone、wait4、SIGCHLD,等等)。這個進(jìn)程產(chǎn)生了子進(jìn)程,我們猜測真實(shí)的工作是由子進(jìn)程完成的。如果我們想捕獲子進(jìn)程的追蹤信息,就必須往 strace 追加 -f 參數(shù)。以下是我們最終使用 strace -f -o /tmp/trace -p 20629 找到的錯誤信息:

    21470 openat(AT_FDCWD, "tmp/spool.21470.1573692319.854640", O_RDWR|O_CREAT|O_EXCL, 0600) = -1 EACCES (Permission denied) 21470 write(1, "32:ZCould not create temporary f"..., 36) = 36 21470 write(2, "bcron-spool[21470]: Fatal: logs:"..., 84) = 84 21470 unlink("tmp/spool.21470.1573692319.854640") = -1 ENOENT (No such file or directory) 21470 exit_group(111) = ? 21470 +++ exited with 111 +++

    現(xiàn)在我們知道了進(jìn)程 ID 21470 在嘗試創(chuàng)建文件 tmp/spool.21470.1573692319.854640 (相對于當(dāng)前的工作目錄)時(shí)得到了一個沒有權(quán)限的錯誤。如果我們知道當(dāng)前的工作目錄,就可以得到完整路徑并能指出為什么該進(jìn)程無法在此處創(chuàng)建臨時(shí)文件。不幸的是,這個進(jìn)程已經(jīng)退出了,所以我們不能使用 lsof -p 21470 去找出當(dāng)前的工作目錄,但是我們可以往前追溯,查找進(jìn)程 ID 21470 使用哪個系統(tǒng)調(diào)用改變了它的工作目錄。這個系統(tǒng)調(diào)用是 chdir(可以在搜索引擎很輕松地找到)。以下是一直往前追溯到服務(wù)器進(jìn)程 ID 20629 的結(jié)果:

    20629 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7faa47c44810) = 21470 ... 21470 execve("/usr/sbin/bcron-spool", ["bcron-spool"], 0x55d2460807e0 /* 27 vars */) = 0 ... 21470 chdir("/var/spool/cron") = 0 ... 21470 openat(AT_FDCWD, "tmp/spool.21470.1573692319.854640", O_RDWR|O_CREAT|O_EXCL, 0600) = -1 EACCES (Permission denied) 21470 write(1, "32:ZCould not create temporary f"..., 36) = 36 21470 write(2, "bcron-spool[21470]: Fatal: logs:"..., 84) = 84 21470 unlink("tmp/spool.21470.1573692319.854640") = -1 ENOENT (No such file or directory) 21470 exit_group(111) = ? 21470 +++ exited with 111 +++

    (如果你在這里迷糊了,你可能需要閱讀 我之前有關(guān) *nix 進(jìn)程管理和 shell 的文章)

    現(xiàn)在 PID 為 20629 的服務(wù)器進(jìn)程沒有權(quán)限在 /var/spool/cron/tmp/spool.21470.1573692319.854640 創(chuàng)建文件。最可能的原因就是典型的 *nix 文件系統(tǒng)權(quán)限設(shè)置。讓我們檢查一下:

    # ls -ld /var/spool/cron/tmp/ drwxr-xr-x 2 root root 4096 Nov 6 05:33 /var/spool/cron/tmp/ # ps u -p 20629 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND cron 20629 0.0 0.0 2276 752 ? Ss Nov14 0:00 unixserver -U /var/run/bcron-spool -- bcron-spool

    這就是問題所在!這個服務(wù)進(jìn)程以 cron 用戶運(yùn)行,但是只有 root 用戶才有向 /var/spool/cron/tmp/ 目錄寫入的權(quán)限。一個簡單 chown cron /var/spool/cron/tmp/ 命令就能讓 bcron 正常工作。(如果不是這個問題,那么下一個最有可能的懷疑對象是諸如 SELinux 或者 AppArmor 之類的內(nèi)核安全模塊,因此我將會使用 dmesg 檢查內(nèi)核日志。)

    總結(jié)

    最初,系統(tǒng)調(diào)用追蹤可能會讓人不知所措,但是我希望我已經(jīng)證明它們是調(diào)試一整套常見部署問題的快速方法。你可以設(shè)想一下嘗試用單步調(diào)試器去調(diào)試多進(jìn)程的 bcron 問題。

    通過一連串的系統(tǒng)調(diào)用解決問題是需要練習(xí)的,但正如我說的那樣,在大多數(shù)情況下,我只需要使用 strace 從下往上追蹤并查找錯誤。不管怎樣,strace 節(jié)省了我很多的調(diào)試時(shí)間。我希望這也對你有所幫助。


    總結(jié)

    以上是生活随笔為你收集整理的strace命令_在软件部署中使用 strace 进行调试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    香蕉视频在线播放 | 久久欧美在线电影 | 99这里只有久久精品视频 | 亚洲国产成人久久 | 天天射天天艹 | 日韩电影在线观看一区二区三区 | 99在线观看 | 狠狠躁天天躁综合网 | www.久艹| 成年人视频在线免费播放 | 久草在线视频网站 | 182午夜在线观看 | 91麻豆精品国产91 | 免费网站黄 | av中文在线观看 | 九九热视频在线免费观看 | 久久调教视频 | 亚洲人成在线观看 | 亚洲欧美观看 | 99在线精品视频观看 | 久久黄色网址 | 黄色网址av| 99久热在线精品视频观看 | 久久这里只精品 | 蜜臀久久99精品久久久久久网站 | 午夜精品电影 | 91禁在线观看 | 91成人在线网站 | 丝袜美腿在线 | 91久久精品一区二区二区 | 国产这里只有精品 | 日韩电影在线观看中文字幕 | 日韩欧美高清在线 | 国产免费人人看 | 99色视频| 福利视频 | 五月综合网站 | ,久久福利影视 | 国产精品午夜av | 五月天丁香综合 | 91中文字幕网| 亚洲国内精品在线 | 久久久高清一区二区三区 | 中文字幕在线精品 | 亚洲一区尤物 | 日本黄网站 | 亚洲精品国产麻豆 | 成人国产综合 | 免费观看av | 国产色秀视频 | 日日干 天天干 | 欧美日韩久久不卡 | 成人一级影视 | 国产精品美女久久久久久2018 | 天天操天天插 | 亚洲国产激情 | 午夜黄色一级片 | 九九久| 婷婷在线不卡 | 国产日产高清dvd碟片 | 日本最新高清不卡中文字幕 | 久久av一区二区三区亚洲 | 欧美精品一区二区免费 | 久久视频在线观看中文字幕 | 天堂中文在线播放 | 九九在线视频 | 国产精品免费高清 | 一本一道久久a久久精品蜜桃 | 亚洲视频久久久久 | 国产精品亚洲片在线播放 | 久草视频99 | 国产日韩欧美在线观看 | 夜夜操天天 | 国产第一二区 | 亚洲精品色婷婷 | 国产精品久久久久久999 | 日本特黄特色aaa大片免费 | 欧美性极品xxxx娇小 | 17婷婷久久www | 99久久精品费精品 | 久久中国精品 | www免费| 日韩激情av在线 | 在线视频一区观看 | 久久毛片网 | 欧美日韩在线免费观看 | 免费视频a | 精品无人国产偷自产在线 | 午夜视频99 | 热热热热热色 | 日韩欧美在线不卡 | 国产视频在线免费观看 | 久久激情视频网 | 成人91在线 | 欧美一区二区三区激情视频 | 顶级欧美色妇4khd | 美女在线观看网站 | 成人九九视频 | 婷婷丁香狠狠爱 | 日韩性色 | 在线影院av | 久久不色 | 色婷婷狠狠操 | 久久免费福利视频 | 国产精品毛片一区二区在线看 | a视频在线观看 | 成人全视频免费观看在线看 | 免费高清在线一区 | 亚洲婷婷综合色高清在线 | 国产成人精品午夜在线播放 | 午夜精品久久久久久久久久久久 | 在线国产黄色 | 夜夜摸夜夜爽 | 五月天网站在线 | av网站有哪些 | 免费日韩电影 | 国产老妇av | 国产成人综合精品 | 日日夜日日干 | 激情黄色av | 成人国产亚洲 | 午夜精品一区二区三区免费视频 | 天天干夜夜夜 | 国内精品久久天天躁人人爽 | 韩国三级一区 | 日韩精品不卡在线观看 | 国产精品麻豆一区二区三区 | 黄色福利网站 | 国产久草在线观看 | 96久久| 久久精品视频网站 | 国产99精品在线观看 | 国产亚洲视频中文字幕视频 | 国产一级久久 | 久久久久久毛片精品免费不卡 | 99国产一区 | 国产成人免费av电影 | 在线看污网站 | 国产尤物一区二区三区 | 婷婷色网| 欧美日韩视频精品 | 亚洲区精品视频 | 国产精品嫩草影院99网站 | av黄色影院 | 国产精品视频久久 | 超碰97人人射妻 | 中文字幕在线免费看线人 | 精品一二区 | 色婷婷综合久久久久 | 91成人精品在线 | 综合网久久| 国产午夜精品在线 | 婷婷亚洲综合五月天小说 | 天天干,天天插 | 国产精品毛片完整版 | 日本性生活免费看 | 亚洲激情六月 | 天天操天天干天天爱 | 婷婷午夜天 | 黄污在线看 | 日韩av一区二区三区四区 | 免费色视频在线 | 中文字幕资源站 | 色国产视频| 天天舔天天射天天操 | 国产成人精品国内自产拍免费看 | 亚洲精品影院在线观看 | 手机看国产毛片 | 91久久精品日日躁夜夜躁国产 | 黄色一级大片在线观看 | 午夜精品一区二区三区视频免费看 | 日本中文字幕在线观看 | 三级在线视频观看 | 免费av在线网 | 精品色999 | 欧美色图一区 | 中文字幕在线免费97 | 亚洲作爱 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 欧美a性| 成年性视频| 欧美乱大交 | 亚洲在线视频网站 | 国产精品一级视频 | 国产激情小视频在线观看 | 伊人色**天天综合婷婷 | 人人爽人人爽人人爽 | 成人xxxx| 成人欧美一区二区三区黑人麻豆 | 日韩免费看片 | 日韩动态视频 | www久久久| 欧美亚洲精品在线观看 | 日韩啪啪小视频 | 日韩经典一区二区三区 | 亚洲激情精品 | 久久6精品 | 麻豆传媒精品 | 日韩免费在线 | 国产精品99久久久久的智能播放 | 一区二区三区免费在线观看视频 | 久久久精品久久日韩一区综合 | 一级黄视频 | 91女子私密保健养生少妇 | 在线视频麻豆 | 米奇狠狠狠888| 久视频在线播放 | 一区 在线观看 | 最新亚洲视频 | 91精品一区二区三区蜜桃 | 亚洲精品乱码久久久久久按摩 | 91精品视频一区 | 精品视频在线视频 | 精品一区二区三区香蕉蜜桃 | 麻豆视频www| 麻豆视频www | 国产一区二区三区四区在线 | 日日婷婷夜日日天干 | 不卡电影免费在线播放一区 | 日韩成人不卡 | 亚洲精品一区二区三区新线路 | 91精品在线免费 | 人人草在线视频 | av片子在线观看 | 五月天综合激情网 | 日韩av一卡二卡三卡 | 亚洲成人高清在线 | 日韩一区二区三区视频在线 | 日韩免费在线视频 | 最新日本中文字幕 | 一区二区不卡视频在线观看 | 日韩中字在线 | 麻豆系列在线观看 | 国产精品成人自产拍在线观看 | 婷婷 综合 色 | 欧美日韩免费一区 | 天天操天天谢 | 久草精品视频 | 激情校园亚洲 | 午夜视频免费在线观看 | 免费看色视频 | 91亚洲精品久久久蜜桃 | 日日操操操 | 热久久国产| 97福利在线观看 | 最近2019年日本中文免费字幕 | 日韩午夜高清 | 一区二区三区四区精品 | 国产精品第54页 | 在线免费观看视频一区二区三区 | 免费网站v | 亚洲国产精品视频 | 在线视频婷婷 | 成人cosplay福利网站 | 综合色在线| 九九影视理伦片 | 91亚洲视频在线观看 | 成人免费看黄 | 国产精品青草综合久久久久99 | www.伊人网 | 一区二区三区视频网站 | 美女网站色免费 | 美国av大片 | 国产精品成人在线观看 | 欧美日韩中文在线观看 | 国产亚洲精品久久久久久电影 | 国产高清视频在线 | 国产手机视频 | 少妇高潮流白浆在线观看 | 视频在线一区二区三区 | 亚洲精品资源在线 | 亚洲一区网| 日韩激情片在线观看 | 日韩av不卡在线 | 日韩va在线观看 | 色综合五月 | 国产三级午夜理伦三级 | 福利视频网站 | 久久久久观看 | 久久久久久久久久久黄色 | 91黄色在线视频 | 九九有精品 | 亚洲欧美激情插 | 日韩理论片中文字幕 | 97超碰超碰久久福利超碰 | 免费在线观看视频a | 国产成视频在线观看 | 久久精品中文字幕少妇 | 久久五月婷婷丁香社区 | 狠狠干狠狠色 | 日韩精品一区二区三区水蜜桃 | 免费视频在线观看网站 | 欧美亚洲免费在线一区 | 国产精品久久久久久久久久久久午夜片 | 中文字幕在线看视频国产中文版 | 国产福利精品在线观看 | 中文字幕a在线 | 久久久免费高清视频 | 免费国产一区二区 | 日韩1页 | 黄色毛片一级 | 久久精品久久精品久久精品 | 日日夜夜天天 | 久久爱资源网 | 国产视频久久 | 精品国产视频一区 | 超碰人人做 | 日韩激情第一页 | 91一区二区在线 | 在线视频 你懂得 | 99视频在线免费观看 | 五月天欧美精品 | 在线视频婷婷 | 丰满少妇在线观看 | 中文字幕中文字幕在线中文字幕三区 | 午夜性生活片 | 日本激情动作片免费看 | 在线视频 区 | 狠狠色狠狠色综合日日小说 | 国产精品综合av一区二区国产馆 | 国产va精品免费观看 | 一级黄色片在线观看 | 中文字幕黄色网 | av一二三区 | 日韩一区二区三区观看 | 午夜精品一区二区三区视频免费看 | 国产精品亚洲人在线观看 | 中文字幕在线播放av | 三级免费黄 | 99视频在线免费看 | 精品视频在线观看 | 日韩欧美xx | 97视频在线免费观看 | 超碰97久久 | 免费在线黄色av | 免费网址在线播放 | 99在线精品免费视频九九视 | 亚州免费视频 | 亚洲专区在线视频 | 黄色资源在线观看 | 黄色a视频免费 | 99精品视频免费 | 亚洲黄色在线免费观看 | 国产精久久久久久久 | 手机在线中文字幕 | 天天操天天插 | 精品免费在线视频 | 久久精品com | 亚洲欧洲国产精品 | 国产成人精品午夜在线播放 | 国产精品久久久久久久久免费 | 国产美女在线精品免费观看 | 麻豆视频国产在线观看 | 国产精品视频地址 | 国产亚洲人| 这里有精品在线视频 | 色婷婷久久久综合中文字幕 | 国内免费的中文字幕 | 精品在线观看一区二区 | 黄色一级大片在线免费看产 | 97超碰中文字幕 | 日日婷婷夜日日天干 | 中文字幕日本在线 | 99视频在线精品免费观看2 | 在线免费观看视频a | 国产一级免费视频 | 人人舔人人爽 | 亚洲第一av在线 | 九色视频网站 | 国产不卡精品 | 久久论理| 免费观看v片在线观看 | 国产一区二区三精品久久久无广告 | 婷婷网在线 | 久久久久国产一区二区三区 | 中文字幕制服丝袜av久久 | 欧美成人在线免费 | 香蕉成人在线视频 | 在线视频 国产 日韩 | 国产精品久久久久久一区二区三区 | 久久精品麻豆 | 婷婷六月天丁香 | 中文字幕 第二区 | 在线国产视频一区 | 亚洲精品午夜一区人人爽 | 九九九九精品 | 97视频亚洲 | 欧美日韩1区 | 97超碰成人 | 亚洲小视频在线观看 | 免费国产黄线在线观看视频 | 亚洲国产精品女人久久久 | 日韩中文字幕电影 | 久久精品免费看 | 天海冀一区二区三区 | 日韩av资源在线观看 | 97在线视频网站 | 97成人资源 | 日韩在线免费播放 | 色婷婷亚洲婷婷 | a成人v在线| 国产福利小视频在线 | 天天综合网天天 | 成年人黄色在线观看 | 在线91av | 少妇做爰k8经典 | 在线视频一区观看 | 91精品国产一区 | 69久久99精品久久久久婷婷 | 97福利 | 国产成人一区二 | 亚洲日韩精品欧美一区二区 | 国产精品综合av一区二区国产馆 | 久久久久国产一区二区三区四区 | 激情视频在线高清看 | 美女视频一区 | 久久视频在线 | 视频 天天草 | 啪啪精品 | 欧美在线视频第一页 | 色姑娘综合网 | 精品国产免费av | 日韩欧美亚洲 | 国产精品女同一区二区三区久久夜 | 免费福利片2019潦草影视午夜 | 欧美日韩精品免费观看 | 日日狠狠| 狠狠躁日日躁狂躁夜夜躁 | 久久久久久久久久久高潮一区二区 | 免费精品人在线二线三线 | 中文字幕一区二区三区在线视频 | 人人干人人草 | 久草网视频在线观看 | 国产精品三级视频 | 超碰在线天天 | 成人黄色小说在线观看 | 日韩女同一区二区三区在线观看 | 97精品欧美91久久久久久 | 中文字幕第一页在线vr | 精品美女国产在线 | 国产一区二区精品在线 | 超碰在线亚洲 | 日韩网站在线免费观看 | 久久久免费毛片 | 99久热在线精品视频成人一区 | 午夜少妇 | 97操碰| 国产精品视频永久免费播放 | 伊甸园永久入口www 99热 精品在线 | 国产精品入口麻豆www | 国产午夜精品一区二区三区四区 | 日韩在线一区二区免费 | 久久视频免费观看 | 九九激情视频 | 99久久爱 | 成人久久精品视频 | 麻豆激情电影 | 在线三级播放 | 欧洲激情在线 | 国产91精品一区二区麻豆亚洲 | 成人三级网站在线观看 | 激情网站网址 | 日韩欧美高清在线 | 亚洲综合丁香 | 美女网站在线观看 | 亚洲精品男人的天堂 | 久保带人 | 日韩二区三区在线 | 国产在线a视频 | 丁香网五月天 | 日韩成人一级大片 | 亚洲欧美在线视频免费 | 五月婷婷国产 | 久久色视频 | 欧美 激情 国产 91 在线 | 欧美在线1区| 黄色大片视频网站 | 香蕉视频亚洲 | 成人a级黄色片 | 日韩免费成人 | 黄色免费大片 | 97碰在线视频 | 中文字幕最新精品 | 在线国产欧美 | av在线网站免费观看 | 国产精品免费看久久久8精臀av | av免费在线免费观看 | 最新国产精品久久精品 | 9999在线观看 | 亚洲精品国产拍在线 | 天天操天天干天天干 | 亚洲精品激情 | 人人爽人人爽 | 992tv在线观看网站 | 天天躁日日躁狠狠躁av中文 | 久久99精品久久只有精品 | 九九免费观看视频 | 超碰在线人人艹 | 91cn国产在线 | 国产成人精品午夜在线播放 | 天天爱天天舔 | 亚洲黄色在线观看 | 五月天免费网站 | 国产成人精品av久久 | av在线播放观看 | 亚洲一级二级三级 | 日韩丝袜在线观看 | 91av色 | 伊人午夜视频 | 一区二区视频在线免费观看 | 成人黄色国产 | 久久毛片网站 | 99视频在线免费观看 | 成人黄色小说在线观看 | 69久久99精品久久久久婷婷 | 久久激情视频 久久 | 国产高清视频在线观看 | 亚洲精区二区三区四区麻豆 | 免费a网站 | 黄色av一级 | 精品国产一区二区三区四区vr | 人人玩人人添人人 | www欧美色| 国产成人一区二区三区在线观看 | 在线观看亚洲国产 | 精品久久久网 | 亚洲a资源| 国产精品福利在线观看 | 精品视频免费久久久看 | 日本三级不卡视频 | www欧美色 | 久久亚洲免费视频 | 日韩av伦理片 | 四虎影视成人永久免费观看视频 | 免费视频区 | 久久久伦理 | 亚洲另类人人澡 | 99久在线精品99re8热视频 | 色欧美88888久久久久久影院 | 国产精品av在线免费观看 | 香蕉影视| 不卡中文字幕av | 成人91在线观看 | av网站大全免费 | 日本aaa在线观看 | 中文字幕日本在线 | 欧美精品一区二区免费 | 欧美日韩精品综合 | 天天操天天添 | 久99久中文字幕在线 | 81精品国产乱码久久久久久 | 99精品久久99久久久久 | 中文字幕中文字幕中文字幕 | 91亚洲精品国偷拍自产在线观看 | 五月激情久久 | 婷婷久久网站 | 蜜臀久久99精品久久久无需会员 | 99在线精品免费视频九九视 | 玖玖爱免费视频 | 91久久久久久久一区二区 | 中文字幕在线观看视频一区二区三区 | 日韩免费在线观看网站 | 青草视频在线播放 | 久久久亚洲精华液 | av手机在线播放 | 天天视频亚洲 | 日韩视频 一区 | 2023av在线| 中文字幕在线影院 | 亚洲欧美日韩中文在线 | 毛片1000部免费看 | 福利在线看片 | 欧美,日韩 | 成人在线视频你懂的 | 天天av在线播放 | 久久久久久久久久毛片 | 国产精品久久久久久久久软件 | 视频在线一区二区三区 | 国产精品18毛片一区二区 | 日韩av高清在线观看 | 日本特黄特色aaa大片免费 | 中文字幕一区二区三区久久 | 国产精品美乳一区二区免费 | 亚洲区另类春色综合小说校园片 | 91精品视频免费看 | 成人网看片 | 天天干夜夜爽 | 色婷婷啪啪免费在线电影观看 | 国产在线 一区二区三区 | 永久av免费在线观看 | 91夫妻自拍 | 天天综合网天天综合色 | 一区二区三区在线电影 | 色爱区综合激月婷婷 | 日韩黄色在线电影 | 久草在线免费播放 | 久久精品国产第一区二区三区 | 国产高清在线免费视频 | 日本性生活一级片 | 欧美精品一级视频 | 怡红院成人在线 | 欧美在线视频一区二区三区 | 精品国产一区二区三区男人吃奶 | 人成午夜视频 | 国产 欧美 在线 | 欧洲av在线 | 欧美人体xx | 久久亚洲精品电影 | 国产欧美日韩视频 | 精品乱码一区二区三四区 | 国产只有精品 | 日本精品一 | 久久精品伊人 | 国产成人精品aaa | 97在线观看视频 | 成人午夜精品福利免费 | 欧美一级日韩免费不卡 | 国产精品美女久久久 | 黄色影院在线免费观看 | 激情五月av | 午夜av激情 | 欧美日韩久 | 成人禁用看黄a在线 | 国内精品久久久久久久久久久久 | 天堂网一区二区 | 精品国产美女 | 精品亚洲国产视频 | 国产精品专区在线 | 国产精品理论片在线播放 | 婷婷综合国产 | 午夜免费在线观看 | 操久久网 | 久久久电影网站 | 日韩欧美在线一区 | 欧美视频xxx | 免费观看www7722午夜电影 | 91av在线视频播放 | 国产护士av | 亚洲日日日 | 国产精品一区二区久久久 | 中文字幕在线观看av | 中文字幕在线观看的网站 | 亚洲天堂网视频 | 九九九九热精品免费视频点播观看 | 91禁在线观看 | 成人黄色在线电影 | 国产在线最新 | 黄色aa久久 | 国内精品亚洲 | 国产精品国产三级国产aⅴ9色 | 欧美与欧洲交xxxx免费观看 | av黄网站| 四虎在线免费观看视频 | 日本精品视频在线观看 | 日韩久久在线 | 天天做天天爱天天爽综合网 | 国产麻豆视频免费观看 | 五月天激情综合网 | av黄色免费在线观看 | 欧美精品少妇xxxxx喷水 | 日韩在线观看视频一区二区三区 | av夜夜操| 开心色插 | 久久理伦片| 最新久久免费视频 | 狠狠的日日 | 免费观看久久久 | 欧美aaaxxxx做受视频 | 日韩精品免费一区二区 | 成人黄色大片在线免费观看 | 国产淫a | 久久久久亚洲精品国产 | 中文字幕在线播出 | 国产拍揄自揄精品视频麻豆 | 亚洲欧美日韩国产一区二区 | 久久网址 | www.黄色网.com | 国产中文字幕一区 | 91丨九色丨91啦蝌蚪老版 | 日韩久久在线 | 久久视频国产精品免费视频在线 | 久久久久久久久久久综合 | 久久精品这里精品 | 91精品视屏| 91精品啪在线观看国产 | 偷拍福利视频一区二区三区 | 天天干人人 | 国产精品破处视频 | 免费黄色网址大全 | 国产午夜一区 | 丁香六月婷| 国产粉嫩在线 | 国产小视频精品 | 99精品偷拍视频一区二区三区 | 亚洲欧洲av | 在线亚洲激情 | 色综合久久久久久久 | 久草精品在线观看 | 色噜噜在线观看视频 | 天天综合天天做天天综合 | 亚洲一级在线观看 | 99 国产精品 | 国产黄色播放 | 在线观影网站 | 91av在线免费| 久久久久久久久久久国产精品 | 亚洲成av人影院 | 免费在线观看av | 久久免费视频3 | 婷婷激情站 | 手机成人在线 | 欧美大香线蕉线伊人久久 | 日韩毛片久久久 | 性色av一区二区三区在线观看 | 日韩精品一区二区三区中文字幕 | 欧美亚洲一级片 | 成人av在线网址 | 午夜精品久久久久久久久久久久久久 | 91看片麻豆 | 在线免费观看视频一区二区三区 | 国产黄色精品在线观看 | 国产中出在线观看 | 国产精品理论在线观看 | 在线观看网站黄 | 国产精品电影一区 | 欧美日韩中文在线视频 | 蜜臀av网址 | 最新国产精品拍自在线播放 | 国产黄大片 | 99久国产 | 亚洲精品在线观看网站 | 免费视频久久久久 | 天天爽夜夜爽人人爽一区二区 | 国产免费观看av | 国产日韩精品在线观看 | 91麻豆精品国产午夜天堂 | 国产高清在线精品 | 超碰资源在线 | 国产精品18久久久久久不卡孕妇 | 在线中文字幕观看 | 日日麻批40分钟视频免费观看 | 久久精品国产99国产 | 女人18片毛片90分钟 | 久久久亚洲网站 | 四虎影视av| 亚洲第一久久久 | 久久er99热精品一区二区三区 | 日本最大色倩网站www | 国语自产偷拍精品视频偷 | 日韩欧美在线一区二区 | 国产精品 999 | www.com久久久| 日韩视频免费在线观看 | 在线观看黄色的网站 | www.色五月.com | 精品国产免费av | 天天操天天色天天射 | 91精品夜夜| 狠狠干婷婷 | 国产一级二级av | 久久久久麻豆 | 成人羞羞视频在线观看免费 | 日韩高清在线看 | 婷婷综合伊人 | 欧美午夜精品久久久久 | 伊人国产在线观看 | 久久久国产电影 | 免费看国产黄色 | 亚洲人成精品久久久久 | 99视频99 | 亚洲九九影院 | 亚洲视频免费 | 国产特级毛片 | 国产精品久久久久久久久久久免费看 | 国产精品18久久久久白浆 | 国产精品久久久久久久久久久久久 | 97国产情侣爱久久免费观看 | 亚洲精品一区二区久 | www.天天色| av网站大全免费 | 久久久久国产精品午夜一区 | 国产精品久久久久久久久久久久午 | 日b黄色片 | 国产三级精品在线 | 久久综合激情 | 在线精品观看 | 97电影在线观看 | 天天伊人狠狠 | 精品国产欧美一区二区三区不卡 | 亚洲免费国产 | 欧美超碰在线 | 国产视频 亚洲视频 | 免费在线观看成年人视频 | 蜜臀久久99精品久久久久久网站 | 丁香婷婷网 | 97av超碰 | 狠狠色狠狠色综合日日92 | 日韩av在线资源 | 久久99久久99精品免费看小说 | 日韩午夜视频在线观看 | 在线免费观看一区二区三区 | 99久久er热在这里只有精品66 | 精品美女视频 | 激情开心色 | 亚洲综合网站在线观看 | 国产精品 美女 | 麻豆一二三精选视频 | 亚洲国产精品视频 | 香蕉91视频 | 狠狠五月天 | 国产高清在线观看 | 国产在线观看污片 | 91精品国产高清 | 久久精品综合视频 | 日韩艹 | 亚洲精品国偷拍自产在线观看蜜桃 | 日韩欧美中文 | 激情丁香久久 | 国产免费观看久久黄 | 亚洲精品国产精品乱码在线观看 | 国产一卡二卡四卡国 | 久久久精品影视 | 久久99国产一区二区三区 | 91污污视频在线观看 | 久精品一区 | 成人av影院在线观看 | 天天操夜夜摸 | 精品福利网 | 免费a现在观看 | 精品a在线| 国产亚洲成av人片在线观看桃 | 青春草视频在线播放 | 亚洲va韩国va欧美va精四季 | 久久久久久中文字幕 | 免费看黄视频 | 在线亚洲人成电影网站色www | 欧美午夜剧场 | 视频在线观看91 | 亚洲综合在线播放 | 人人藻人人澡人人爽 | 久久亚洲免费视频 | 天天操操 | 成人午夜在线电影 | 九九久久精品视频 | 久久久国产电影 | 日韩大片免费在线观看 | 免费看毛片网站 | av在线电影免费观看 | 日日爱av| 亚洲婷婷免费 | www.com.黄| 日本精品久久久久中文字幕5 | 成人免费视频观看 | 99精品视频免费观看视频 | 五月婷婷丁香六月 | 91在线影院 | 日韩一区二区三 | 国产免费av一区二区三区 | 日本精品久久久久 | 91人人爱 | 欧美人牲 | 啪嗒啪嗒免费观看完整版 | 国产精品综合在线观看 | 国产99久久久精品 | 蜜桃视频在线视频 | 免费人成网 | 久久99影院| 我要色综合天天 | 亚洲成人av影片 | 国产麻豆果冻传媒在线观看 | 91香蕉视频 | 91精品国产99久久久久久红楼 | 久久综合电影 | 97超碰在线人人 | 成人午夜精品福利免费 | 三级黄色网址 | 夜夜爱av| 永久av免费在线观看 | 国产成人一区二区三区久久精品 | 久久激情综合网 | 四虎国产精品成人免费4hu | 有码一区二区三区 | 99色在线| 欧美成人一区二区 | 91精品久久久久久久91蜜桃 | 97成人在线观看视频 | 在线观看成人福利 | 亚洲精品玖玖玖av在线看 | 日本三级不卡 | 亚洲高清视频在线观看 | 在线观看一区 | 国语自产偷拍精品视频偷 | 在线免费观看欧美日韩 | 91成人免费视频 | 丁香五香天综合情 | 99精彩视频在线观看免费 | 成人视屏免费看 | 欧美日韩视频在线观看一区二区 | 午夜视频福利 | 亚洲另类人人澡 | 正在播放久久 | 国产精品第72页 | 亚洲午夜小视频 | 在线观看一级 | 久久婷婷一区二区三区 | 日本三级全黄少妇三2023 | 久久国产精品99久久久久 | 国产18精品乱码免费看 | 综合影视 | 五月婷婷丁香六月 | 中文字幕国产精品一区二区 | 成人h视频在线播放 | 九九欧美| 成人免费在线视频观看 | 免费a视频 | 国产精品99久久久久久久久久久久 | 日韩免费在线观看视频 | 在线 高清 中文字幕 | 免费久草视频 | 亚洲乱码中文字幕综合 | 日韩视频1区 | 国产亚洲欧美精品久久久久久 | 成年人免费在线观看网站 | 中文字幕影视 | 国产99久久久国产精品免费看 | 欧美黄污视频 | 国产98色在线 | 日韩 | 成人91在线观看 | 成人免费在线视频 | 国产视频久久 | 五月婷婷六月丁香激情 | 在线免费三级 | 亚洲丁香日韩 | av不卡免费看 | 六月激情久久 | 精品视频久久 | av丝袜美腿 | 欧美一区二区三区不卡 | bbbb操bbbb | 中文字幕免费在线 | 亚洲精品国产第一综合99久久 | 国产精品大全 | 久久99视频免费观看 | 国产三级香港三韩国三级 | 日日成人网 | 欧美国产精品久久久久久免费 | 国产日韩欧美中文 | 九草视频在线观看 | 五月亚洲综合 | 国产免费一区二区三区网站免费 | 国产理论片在线观看 | 日本黄网站 | 97超碰色 | 欧美老女人xx | 成人羞羞视频在线观看免费 | 成人av片免费观看app下载 | 精品国产自在精品国产精野外直播 | 欧美在线一二 | 免费试看一区 | 久久久国产精品久久久 | 伊甸园av在线 | 国际精品久久久久 | 成人午夜影院在线观看 | 少妇bbb搡bbbb搡bbbb′ | 国产日韩在线一区 | www成人精品 | 国产69精品久久99不卡的观看体验 | 色六月婷婷 | 97视频免费在线看 | 免费黄色网址大全 | 亚洲日韩欧美一区二区在线 | 国产精品日韩久久久久 | 狠狠操操操 | 99久久婷婷国产精品综合 | 亚洲精品免费播放 | 日韩一级黄色av | 久久成人人人人精品欧 | 一区 二区电影免费在线观看 | 欧美亚洲国产精品久久高清浪潮 | 欧美成人黄色 | 狠狠色丁香婷婷综合视频 | 国产视频在线一区二区 | 亚洲国产欧美一区二区三区丁香婷 | 九九免费在线观看视频 | 精品久久久久久久久久久久 | 色欲综合视频天天天 | 在线色视频小说 | av色综合| 久久国产热 | 伊人成人久久 | 99在线热播精品免费99热 | 三级动态视频在线观看 | 国产在线欧美在线 | 亚洲91精品在线观看 | 午夜av免费看 | 日韩av成人在线观看 | 国产精品久久久久久久毛片 | 91麻豆国产 |