2016-07-14 6 views
1

Я использую команду:strace -e trace = сеть, показывающая только SIGCHLD?

Трассирование -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', чтобы следовать за fork? – mpromonet

+0

@mpromonet Я изначально не был. Просто попробовал strace -tt -f -o $ {filename} -e trace = network gdb -args $ {EXECUTABLE}, но получить Невозможно создать процесс: операция не разрешена. Во время запуска программа вышла с кодом 127. – user997112

+0

Почему бы не использовать 'strace -f -tt -o $ {filename} -e trace = network $ {EXECUTABLE}' без gdb? С вашей командой вы регистрируете системный вызов gdb. – mpromonet

ответ

2

Использование strace с gdb --args ${EXECUTABLE} печатает syscall gdb, вместо syscall исполняемого файла, выполняющегося под gdb.

Для отпечатков вашего системного вызова исполняемого файла вы можете использовать:

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

«-f» попросить Трассирование следовать вилки, это полезно, когда исполняемая вилка нового потока или новый процесс.