nm コマンド
目的
オブジェクト・ファイル、実行可能ファイル、およびオブジェクト・ファイル・ライブラリーのシンボルの情報を表示します。
構文
NM [ -A ] [ -C ] [ -X (X) {32|64|32_64|D64| 任意}] [ 「-f」 ] [ -h ] [ - ] [ P- ] [ - ] [ -T (T) ] [ -v (V) ] [ -B | -P ] [ -e (E) | - | -ウー ] [ -d 年 | - | -x (X) | T フォーマット ] ファイル ...
説明
nm コマンドは、 オブジェクト・ファイル、実行可能ファイル、またはオブジェクト・ファイル・ライブラリーを示す指定された File 内のシンボルの情報を表示します。 ファイルにシンボル情報がない場合、nm コマンドはその事実を報告しますが、 それをエラー条件としては解釈しません。 デフォルトでは、nm コマンドは数値を 10 進表記で報告します。
nm コマンドは、 次のシンボル情報を標準出力に書き出します。
- ライブラリー または オブジェクト名
nm コマンドは、 -A オプションが指定されている場合のみ、 ファイルに関連するライブラリーまたはオブジェクト名のいずれかを報告します。
- シンボル名
- シンボル・タイプ
nm コマンドは、次のいずれかの文字でファイルのシンボル・タイプを表します (弱いシンボルはグローバル・シンボルと同じ文字で表されます)。
項目 説明 A グローバル絶対シンボル a ローカル絶対シンボル B グローバル bss シンボル b ローカル bss シンボル D グローバル・データ・シンボル d ローカル・データ・シンボル F ソース・ファイル名シンボル L グローバル・スレッド・ローカル・シンボル (TLS) l 静的スレッド・ローカル・シンボル (TLS) T グローバル・テキスト・シンボル t ローカル・テキスト・シンボル U 未定義シンボル - 値
- サイズ
nm コマンドは、利用可能な場合は、 シンボルに関連するサイズを報告します。
フラグ
項目 | 説明 |
---|---|
-A | 各行のオブジェクトの絶対パス名またはライブラリー名のいずれかを表示します。 |
-B | 「Berkeley Software Distribution (BSD)」フォーマットで出力を表示します。
|
-C | C++ 名のデマングリングを抑制します。 デフォルトでは、すべての C++ シンボル名がデマングルされます。 注: C++ オブジェクト・ファイルからのシンボルの名前は、使用される前にデマングルされます。
|
-d | シンボルの値とサイズを 10 進数として表示します。 これはデフォルトです。 |
-e | 静的シンボルと外部 (グローバル) シンボルのみを表示します。 |
-f | 通常は抑制される冗長な .text、.data、および .bss シンボルを含む、全出力を表示します。 |
-g | 外部 (グローバル) シンボルのみを表示します。 |
-h | 出力ヘッダー・データの表示を抑制します。 |
-l | WEAK シンボルのキー文字に * を付加することにより、WEAK シンボルと GLOBAL シンボルを区別します。 -P オプションと一緒に使用した場合、
弱いシンボルのシンボル・タイプは次のように表されます。
|
-o | シンボルの値とサイズを 10 進数ではなく 8 進数として表示します。 |
-P | 標準ポータブル出力フォーマットで情報を表示します。
このフォーマットでは、 -t、-d、または -o フラグを使って別のフォーマットを指定しない限り、 数値が 16 進表記で表示されます。 -P フラグを付けると、-A フラグが指定されている場合のみ、library/object name フィールドが表示されます。 また、-P フラグを付けると、サイズを適用できるシンボルに対してのみ、 size フィールドが表示されます。 |
-p | ソートしません。 出力データは、記号テーブルの順序で表示されます。 |
-r | 逆順にソートします。 |
-t フォーマット | 指定されたフォーマットで数値を表示します。
Format には、次のいずれかの表記を指定します。
|
-T | 本来は桁からあふれるすべての名前を切り捨て、 名前の最終文字をアスタリスクにします。 デフォルトでは、nm はリストされるシンボル名全体を表示し、 その隣に桁幅よりも長い名前を表示するので、名前のあとのすべての桁の位置がずれます。 |
-u | 未定義シンボルのみを表示します。 |
-v | アルファベットではなく値で出力をソートします。 |
-x | シンボルの値とサイズを 10 進数ではなく 16 進数として表示します。 |
-X モード | nm が調べるオブジェクト・ファイルのタイプを指定します。 mode は次のいずれかでなければなりません。
デフォルトでは、32 ビットのオブジェクト・ファイルを処理します (64 ビットのオブジェクトは無視します)。 mode は、OBJECT_MODE 環境変数を使用して設定することもできます。 例えば、OBJECT_MODE=64 を指定すると、 nm は 64 ビットのオブジェクトを処理し、32 ビットのオブジェクトを無視します。 -X フラグは OBJECT_MODE 変数をオーバーライドします。 |
終了状況
このコマンドは、以下の終了値を戻します。
項目 | 説明 |
---|---|
0 | 正常終了。 |
>0 | エラーが発生しました。 |
例
- オブジェクト・ファイルの静的シンボルと外部シンボルをリストします。a.out次のように入力します。
nm -e a.out
- シンボルのサイズと値を 16 進数で表示し、シンボルを値でソートするには、次のように入力します。
nm -xv a.out
- libc.a 内の 64 ビットのすべてのオブジェクトのシンボルを表示し、
32 ビットのオブジェクトをすべて無視するには、次のように入力します。
nm -X64 /usr/lib/libc.a
ファイル
項目 | 説明 |
---|---|
/usr/ccs/bin/nm | nm コマンドを含みます。 |