谢谢!
#1 楼
在gdb
中,可以使用catch syscall
设置系统调用断点。如果它在32位x86(IA-32)中,请检查
your_linux_source_dir/usr/include/asm/unistd_32.h
中的系统调用编号。在32位x86中没有名为socket
的系统调用,您是说socketcall
吗?它的编号为102。如果在x86-64(AMD64)中,请检查your_linux_kernel_source_dir/usr/include/asm/unistd_64.h
中的系统调用编号。名为socket
的系统调用是41。然后在
gdb
中运行可执行文件:$ gdb myexecutable
并设置系统调用断点(41是
socket
syscall x86-64中的数字,请更改为您合适的系统调用号):(gdb) catch syscall 41
,然后运行程序:
(gdb) r
也可以使用syscall的名称(例如
socket
)代替数字(例如41
),具体取决于您的配置。评论
我不知道何时添加。但是现在您可以使用syscall名称而不是其编号。因此,只需捕获syscall套接字即可。
–塞利利比
18-09-26在16:25
评论
撰写文章:stackoverflow.com/questions/8235436/…