Nm - Linuxコマンド - Unixコマンド

nm - オブジェクトファイルのシンボルをリストする

シノプシス

nm [ -a | --debug-syms ] [ -g | --extern-only ]
[ -B ] [ -C | --demangle [= スタイル ]] [ -D | - ダイナミック ]
[ -S | --print-size ] [ -s | --print-armap ]
[ -A | -o | --print-file-name ]
[ -n | -v | --numeric-sort ] [ -p | --no-sort ]
[ -r | --reverse-sort ] [ --size-sort ] [ -u | - のみ定義された ]
[ -t radix | --radix = radix ] [ -P | - 移植性 ]
[ - ターゲット = bfdname ] [ -f 形式 | --format = format ]
[ --defined-only ] [ -l | --line-numbers ] [ --no-demangle ]
[ -V | --version ] [ -X 32_64 ] [ --help ] [ objfile ...]

DESCRIPTION

GNU nmは、オブジェクトファイルobjfileからのシンボルをリストします。引数としてオブジェクトファイルがリストされていない場合、 nmはファイルa.outを仮定します。

各シンボルについて、 nm以下を示します。

*

オプション(下記参照)で選択された基数のシンボル値、またはデフォルトでは16進数。

*

シンボルタイプ。 少なくとも以下のタイプが使用されます。 オブジェクトファイルの形式にも依存します。 小文字の場合、シンボルはローカルです。 大文字の場合、シンボルはグローバル(外部)です。

A

シンボルの値は絶対値であり、さらにリンクすると変更されません。

B

シンボルは、初期化されていないデータセクション(BSSと呼ばれます)にあります。

C

シンボルは共通です。 一般的な記号は、初期化されていないデータです。 リンクするとき、複数の共通シンボルが同じ名前で表示されることがあります。 シンボルがどこにでも定義されている場合、共通シンボルは未定義の参照として扱われます。

D

シンボルは初期化されたデータセクションにあります。

G

シンボルは小さなオブジェクトの初期化されたデータセクションにあります。 オブジェクトファイル形式の中には、大規模なグローバル配列ではなく、グローバルint変数など、小さなデータオブジェクトへのより効率的なアクセスを可能にするものもあります。

シンボルは、別のシンボルへの間接参照です。 これはまれに使用されるa.outオブジェクトファイル形式に対するGNU拡張です。

N

シンボルはデバッグシンボルです。

R

シンボルは読み取り専用のデータセクションにあります。

S

シンボルは、小さなオブジェクトの初期化されていないデータセクションにあります。

T

シンボルはテキスト(コード)セクションにあります。

U

シンボルは定義されていません。

V

シンボルは弱いオブジェクトです。 弱い定義済みシンボルが通常定義されたシンボルとリンクされている場合、通常の定義済みシンボルがエラーなしで使用されます。 弱い未定義のシンボルがリンクされ、シンボルが定義されていない場合、弱いシンボルの値はエラーなしでゼロになります。

W

シンボルは、特に弱いオブジェクトシンボルとしてタグ付けされていない弱いシンボルです。 弱い定義済みシンボルが通常定義されたシンボルとリンクされている場合、通常の定義済みシンボルがエラーなしで使用されます。 弱い未定義のシンボルがリンクされ、シンボルが定義されていない場合、弱いシンボルの値はエラーなしでゼロになります。

-

シンボルは、a.outオブジェクトファイル内のスタブシンボルです。 この場合、次の値はstabs他のフィールド、stabs descフィールド、およびstabタイプです。 スタブ記号は、デバッグ情報を保持するために使用されます。

シンボルのタイプは不明です。または、オブジェクトファイルのフォーマットに固有です。

*

シンボル名。

オプション

ここでは代替案として示されている長い形式と短い形式のオプションが同等です。

-A

-o

--print-file-name

すべての記号の前に、入力ファイルを一度だけ識別するのではなく、見つかった入力ファイル(またはアーカイブ・メンバー)の名前で各記号を先行させます。

-a

--debug-syms

デバッガのみのシンボルであっても、すべてのシンボルを表示する。 通常これらはリストされていません。

-B

--format = bsdと同じです (MIPS nmとの互換性のため)。

-C

--demangle [= スタイル ]

低レベルのシンボル名をユーザレベルの名前にデコード( demangle )します。 システムが先頭に付ける最初のアンダースコアを削除するだけでなく、これによりC ++の関数名も読みやすくなります。 コンパイラごとに異なるマングリングスタイルがあります。 オプションのデアンギュリングスタイル引数を使用して、コンパイラに適したデアントラリングスタイルを選択できます。

--no-demangle

低レベルのシンボル名をデマングルしないでください。 これがデフォルトです。

-D

- 動的

通常のシンボルではなくダイナミックシンボルを表示します。 これは、特定のタイプの共有ライブラリなどの動的オブジェクトでのみ意味があります。

-f 形式

--format = format

"bsd"、 "sysv"、または "posix"の出力フォーマット形式を使用します。 デフォルトは "bsd"です。 フォーマットの最初の文字だけが重要です。 大文字または小文字のどちらでもかまいません。

-g

--extern-only

外部シンボルのみを表示します。

-l

行番号

シンボルごとに、デバッグ情報を使用してファイル名と行番号を検索します。 定義済みのシンボルについては、シンボルのアドレスの行番号を探します。 未定義シンボルの場合は、シンボルを参照する再配置エントリの行番号を探します。 行番号情報が見つかった場合は、他のシンボル情報の後に印刷します。

-n

-v

- 数値ソート

名前のアルファベット順ではなく、アドレスでシンボルをソートします。

-p

--no-sort

任意の順序でシンボルを並べ替えるのはやめてください。 遭遇した順に印刷してください。

-P

- 移植性

既定の形式の代わりにPOSIX.2標準出力形式を使用します。 -f posixと等価です。

-S

--print-size

「bsd」出力形式の定義済みシンボルの印刷サイズ。

-s

--print-armap

アーカイブメンバからのシンボルをリストするときには、インデックスを含めます:どのモジュールがどの名前の定義を含んでいるかのマッピング( arまたはranlibによってアーカイブに格納される)。

-r

--reverse-sort

ソートの順序を逆にします(数値かアルファベットかにかかわらず)。 最後に来てください。

--size-sort

サイズでシンボルを並べ替えます。 サイズは、シンボルの値と次に高い値を持つシンボルの値との差として計算されます。 値ではなく、シンボルのサイズが表示されます。

-t 基数

--radix = 基数

シンボル値を印刷する基数としてradixを使用します。 小数点の場合はd 、8進数の場合はo 、16進数の場合はxでなければなりません。

--target = bfdname

システムのデフォルト形式以外のオブジェクトコード形式を指定してください。

-u

- 定義済みのみ

定義されていないシンボル(各オブジェクトファイルの外部シンボル)のみを表示します。

定義済みのみ

オブジェクトファイルごとに定義されたシンボルのみを表示します。

-V

- バージョン

nmのバージョン番号を表示して終了します。

-バツ

このオプションは、AIX版のnmとの互換性のために無視されます。 それは文字列32_64でなければならない1つのパラメータをとります。 AIX nmのデフォルトモードは-X 32に対応していますが、GNU nmではサポートされていません。

- 助けて

nmのオプションの要約を表示して終了します。

関連項目

binutilsの ar (1)、 objdump (1)、 ranlib (1)、およびInfoエントリ。

重要: manコマンド( %man )を使用して、特定のコンピュータでコマンドがどのように使用されているかを確認してください。