2016-07-14 69 views
1

我使用命令:strace -e trace =僅顯示SIGCHLD的網絡?

strace的-tt -o $ {文件名} -e跟蹤=網絡GDB --args $ {} EXECUTABLE

跟蹤哪些系統調用來實現,而連接併發送消息給對等體。不過,我只收到以下項:

15:40:11.908857 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_TRAPPED, si_pid=5019, si_status=SIGSTOP, si_utime=0, si_stime=0} --- 
15:40:11.911130 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_TRAPPED, si_pid=4987, si_status=SIGTRAP, si_utime=1, si_stime=0} --- 
15:40:11.914907 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=4987, si_status=0, si_utime=1779, si_stime=180} --- 
15:40:11.963586 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_TRAPPED, si_pid=4983, si_status=SIGTRAP, si_utime=37, si_stime=4} --- 
15:40:11.973691 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_TRAPPED, si_pid=5019, si_status=SIGSTOP, si_utime=0, si_stime=0} --- 
15:40:11.975929 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_TRAPPED, si_pid=4983, si_status=SIGTRAP, si_utime=37, si_stime=4} --- 
15:40:11.979922 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=4983, si_status=0, si_utime=1816, si_stime=184} --- 

我不該看插座調用read()close()等?

+2

您是否嘗試添加'-f'以跟隨叉? – mpromonet

+0

@mpromonet我原本沒有。剛試過strace -tt -f -o $ {文件名} -e trace =網絡gdb -args $ {EXECUTABLE}但get不能創建進程:操作不允許。在啓動程序中退出代碼127. – user997112

+0

爲什麼不使用'strace -f -tt -o $ {filename} -e trace = network $ {EXECUTABLE}'沒有gdb?用你的命令記錄gdb的系統調用。 – mpromonet

回答

2

gdb --args ${EXECUTABLE}一起使用strace會打印gdb的系統調用,而不是在gdb下運行的可執行文件的系統調用。

爲了您的可執行文件的打印系統調用,您可以使用:

strace -f -tt -o ${filename} -e trace=network ${EXECUTABLE} 

的「-f」選項,請與strace遵循叉,這是有用的,當一個可執行的叉子新的線程或新進程。