web-dev-qa-db-ja.com

objdumpシンボルテーブルの各列の意味は何ですか?

SYMBOL TABLE:
0000000000000000  w      *UND*  0000000000000000              __gmon_start__

私はman objdumpしかし、そのような情報はありません。

5列の意味を知っている人はいますか?

40
Je Rog

COLUMN ONE:シンボルの値

COLUMN TWO:シンボルに設定されているフラグビットを示す文字とスペースのセット。以下にリストされている7つのグループがあります。

グループ1:(l、g ,!)ローカル、グローバル、どちらでもない、両方。

グループ2:(w、)弱いまたは強いシンボル。

グループ3:(C、)シンボルは、コンストラクターまたは通常のシンボルを示します。

グループ4:(W、)シンボルは警告または通常のシンボルです。

グループ5:(I、)別のシンボルまたは通常のシンボルへの間接参照。

グループ6:(d、D、)デバッグシンボル、ダイナミックシンボル、または通常のシンボル。

グループ7:(F、f、O、)symbolは、関数、ファイル、オブジェクト、または通常のシンボルの名前です。

カラム3:シンボルが存在するセクション、[〜#〜] abs [〜#〜]は特定のセクションに関連付けられていないことを意味します

COLUMN FOUR:シンボルのサイズまたは配置。

COLUMN FIVE:シンボルの名前。

追加情報が必要な場合は、manページを試してください;-)または次のリンク: http://manpages.ubuntu.com/manpages/intrepid/man1/objdump.1.html および http://sourceware.org/binutils/docs/binutils/objdump.html

57
red-E

前の答えはどれも正しいようには見えないので、実際に探しているのは次のとおりです。

以下にスニペットを示します link 役に立つかもしれません:

「通常ELFベースのファイルで見られる他の一般的な出力形式は次のようになります。

      00000000 l    d  .bss   00000000 .bss
      00000000 g       .text  00000000 fred

ここで、最初の数字はシンボルの値です(アドレスと呼ばれることもあります)。次のフィールドは、実際には、シンボルに設定されているフラグビットを示す文字とスペースのセットです。これらの文字について以下に説明します。次は、シンボルが関連付けられているセクション、またはセクションが絶対(つまり、セクションに接続されていない)の場合は[〜#〜] abs [〜#〜]、または[〜#〜] und [〜#〜]ダンプされるファイルでセクションが参照されているが、そこに定義されていない場合。

セクション名の後には、別のフィールド、数字があります。これは、一般的な記号の場合は配置、他の記号の場合はサイズです。最後に、シンボルの名前が表示されます。」

5
Scranton

objdump -tは、ファイルのシンボルテーブルエントリを出力します。
出力は、nmプログラムによって提供される情報に似ています。

出力には7列があります:

  • クラス
  • タイプ
  • サイズ
  • ライン
  • セクション
  • シンボル名

(一部のエントリでは一部の列が空になる場合があります)

objdumpシンボル名左端の列に出力します。
nmは、シンボル名右端の列に出力します。

3
TheCodeArtist

man7.orgからのobjdumpのマニュアルページ のオプション-tの説明から、フォーマットは次のように説明されています。

通常ELFベースのファイルで見られる他の一般的な出力形式は次のようになります。

              00000000 l    d  .bss   00000000 .bss
              00000000 g       .text  00000000 fred
  • ここで、最初の数字はシンボルの値です(アドレスと呼ばれることもあります)。
  • 次のフィールドは、実際には、シンボルに設定されているフラグビットを示す文字とスペースのセットです。これらの文字については以下で説明します。
  • 次は、シンボルが関連付けられているセクション、またはセクションが絶対(つまり、セクションに接続されていない)の場合は* ABS *、ダンプされるファイルでセクションが参照されているが定義されていない場合は* UND *です。
  • セクション名の後には、別のフィールド、数字があります。これは、一般的な記号の場合は配置、他の記号の場合はサイズです。最後に、シンボルの名前が表示されます。

より詳細な説明については、上記のサイトをご覧ください。

0
jiaxl

http://www.cs.swarthmore.edu/~newhall/unixhelp/compilecycle.html#runtime

 $ nm --format sysv simple#system V形式は、デフォルトの
 
名前値クラスタイプサイズラインセクション
 
 ... 
 foo | 080484e6 | T | FUNC | 0000000c | | .text 
0
Pragya