オブジェクト ファイル内の個々のシンボルを照会する便利な方法 (ビルド テスト スクリプトで使用するため) を探しています。「シンボル X はファイル Y に存在しますか?」という質問に (できれば終了ステータスによって) 答えられるツールはありますか? nm(1)
または、たとえば grep と適切な正規表現を使用して、の出力を解析する必要があるだけですか? そのようなツールがシンボルに関する詳細情報 (サイズ、タイプ、値など) を提供できれば、さらに良いでしょう。
質問する
682 次
2 に答える
5
実行可能/共有ライブラリの場合は、readelfまたはObjdumpを調べてください。バイナリ シンボル (マングルされているか、マングルされていない) をダンプできます。これを grep できるはずです。
それらのソースは簡単に入手できるので、手元のタスクに合わせて単純なツールに変換するか、コード ベースを直接インポートすることができます (実際に必要というわけではありません。問題のバイナリをロードしてdlopen
、dlsym
シンボルがあります)。
Objdump はバイナリを対象としており、nmと readelf は elf オブジェクト ファイルを読み取ります。
于 2012-02-28T15:43:08.633 に答える
0
直接使用することもできますlibbfd
が、API をざっと見ただけでは、必要な情報に直接アクセスする方法がわかりません。
于 2012-02-28T15:44:25.423 に答える