1

来自 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                          

怎么了?如何找到我的程序的系统调用的位置?

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

4

1 回答 1

2

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

The -i option is weakly supported.

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

于 2012-04-05T11:25:30.857 回答