0

backtrace_symbols() を使用して C コードからスタックを出力しています ( http://www.gnu.org/software/libc/manual/html_node/Backtraces.htmlの指示に従ってください)。ただし、 -g -rdynamic を使用してライブラリをビルドしたにもかかわらず、動的ライブラリのスタック フレームのアドレスしか取得できません。

これで、実行中のプロセスとライブラリができました。各フレーム アドレスがどのメソッドに対応しているかを調べるにはどうすればよいでしょうか。前もって感謝します。

これは 64 ビット Linux 上にあります。

私の印刷例は次のようになります。

Obtained 9 stack frames.
/tmp/libexample.so [0x2aaabaae9771]
/tmp/libexample.so [0x2aaabaae9828]
/tmp/libexample.so [0x2aaabaaa8138]
/tmp/libexample.so [0x2aaabaab2402]
/tmp/libexample.so [0x2aaabaabd029]
/tmp/libexample.so [0x2aaabaa1e23a]
/tmp/libexample.so [0x2aaabaa24ded]
/lib64/libpthread.so.0 [0x30b700677d]
4

1 に答える 1

1

機能を探していると思いますdladdr

于 2013-04-05T03:06:29.247 に答える