如何找到程序的系统调用位置?

时间:2012-04-05 10:37:20

标签: linux debugging strace

来自strace手册:

-i Print the instruction pointer at the time of the system call. 

我把我的程序搞定了:

strace -i prog

结果我收到了很多系统调用。其中之一:

[000da49c] open("./rabbit.o", O_RDONLY) = 3

但在prog的这个地址处的反汇编指令不会调用任何系统调用(hte编辑器):

da49c !   mov         r7, ip                          

有什么问题?如何找到我的程序的系统调用位置?

P.S。我的设备的架构不支持GDB命令catch系统调用。

1 个答案:

答案 0 :(得分:2)

引用“strace”手册页的Bugs部分:

The -i option is weakly supported.

另一个可能对你有用的提示:你看过上面的代码吗? 在系统调用之后,IP已经指出了NEXT指令。 所以你应该在da49c之前检查说明。