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 のこのアドレスにある逆アセンブルされた命令は、syscall (hte エディター) を呼び出しません。

da49c !   mov         r7, ip                          

なにが問題ですか?プログラムのシステム コールの場所を見つけるにはどうすればよいですか?

私のデバイスの PS アーキテクチャは、GDB コマンドの catch syscall をサポートしていません。

4

1 に答える 1

2

「strace」マンページのバグセクションを引用するには:

The -i option is weakly supported.

役立つかもしれないもう 1 つのヒント: 前のコードを見ましたか? それを出す時点でのIPは、syscallの後、すでにNEXT命令を指しています。したがって、前に命令を確認する必要がありますda49c

于 2012-04-05T11:25:30.857 に答える