2012-04-05 27 views
1

从strace的手册:如何查找我的程序的系统调用位置?

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

我straced我PROGRAMM:

strace -i prog 

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

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

但在前卫的这个地址反汇编指令不调用系统调用任何(HTE编辑):

da49c ! mov   r7, ip       

有什么不对?我怎样才能找到我的程序系统调用的地方?

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

回答

2

举了“strace的”手册页的错误部分:

The -i option is weakly supported. 

另一个端头,它可以帮助你:你看了上面的代码? 在系统调用之后,IP在指出它时已经指向NEXT指令。 所以你应该检查da49c之前的说明。

+0

它是:da498! svc 0x00000000。 它可能是系统调用,我应该检查它。感谢您的回复。 – 2012-04-05 11:46:34

+0

它工作出色。谢谢弗洛洛先生! – 2012-04-05 11:54:44

相关问题