3

オブジェクト ファイル内の個々のシンボルを照会する便利な方法 (ビルド テスト スクリプトで使用するため) を探しています。「シンボル X はファイル Y に存在しますか?」という質問に (できれば終了ステータスによって) 答えられるツールはありますか? nm(1)または、たとえば grep と適切な正規表現を使用して、の出力を解析する必要があるだけですか? そのようなツールがシンボルに関する詳細情報 (サイズ、タイプ、値など) を提供できれば、さらに良いでしょう。

4

2 に答える 2

5

実行可能/共有ライブラリの場合は、readelfまたはObjdumpを調べてください。バイナリ シンボル (マングルされているか、マングルされていない) をダンプできます。これを grep できるはずです。

それらのソースは簡単に入手できるので、手元のタスクに合わせて単純なツールに変換するか、コード ベースを直接インポートすることができます (実際に必要というわけではありません。問題のバイナリをロードしてdlopendlsymシンボルがあります)。

Objdump はバイナリを対象としており、nmと readelf は elf オブジェクト ファイルを読み取ります。

于 2012-02-28T15:43:08.633 に答える
0

直接使用することもできますlibbfdが、API をざっと見ただけでは、必要な情報に直接アクセスする方法がわかりません。

于 2012-02-28T15:44:25.423 に答える