2016-07-14 59 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遵循叉,这是有用的,当一个可执行的叉子新的线程或新进程。