Ubuntu で C++ アプリケーションを実行しています。私がやりたいのは、アプリケーション バイナリからシンボルを取り除いてバイナリの一部にならないようにすることですが、addr2line ユーティリティを使用して、バイナリの一部であるシンボルの代わりにシンボル ファイルを参照してバックトレース情報を取得します。 . これは可能ですか?
これまでに得た最も近いものは、次を使用してシンボル ファイルを生成することです。
strip MyBinary -o thesymbols.sym
そして、そのファイルを addr2line ユーティリティで次のように使用してみました。
addr2line 0x779e81 -b thesymbols.sym
しかし、これは苦情をもたらします:
addr2line: 'a.out': No such file
それで、私は試しました:
addr2line 0x779e81 -e MyBinary -b thesymbols.sym
しかし、これは苦情をもたらします:
addr2line: MyBinary: Invalid bfd target
誰かが私を正しい方向に導くことができますか? 私は何を間違っていますか?
助けてくれてありがとう!
編集:
次のようなシンボル情報だけを含むファイルを作成していると思ったとき、今気づきました。
strip MyBinary -o thesymbols.sym
私は実際には、thesymbols.sym と呼ばれる削除されたバイナリを作成していました。
そうは言っても、私の最初の質問はまだ残っています。何か案は?