来自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系统调用。
答案 0 :(得分:2)
引用“strace”手册页的Bugs部分:
The -i option is weakly supported.
另一个可能对你有用的提示:你看过上面的代码吗?
在系统调用之后,IP已经指出了NEXT指令。
所以你应该在da49c
之前检查说明。