linuxnmコマンド



Linux Nm Command



特徴

nmは名前の省略形であり、コマンド(通常はライブラリ)でシンボルファイルを含めます。多くの場合、主な関心事であるロジックライブラリを認識していないため、関数や変数などの名前の競合の問題を知る必要があるだけです。もちろん、nmコマンドを使用できるときは、他にも同様のコマンドがあります。ここではnmについて説明します。

使用法:nm [オプション] [ファイル]
[file(s)]にシンボルをリストします(デフォルトではa.out)。
オプションは次のとおりです。
-a、-debug-symsはデバッグ情報のみを表示します
-A、-print-file-シンボル情報の各行の名前、ファイル名印刷クエリ
-C、-demangle [= STYLE]低レベルの記号名は、ユーザーレベルの名前に変換されます。これは、ユーザーがより理解しやすい形式に変換することを意味します。
-D、-動的表示動的シンボル情報
-f、-format = FORMAT出力フォーマット設定情報。これは、「bsd」、「sysv」、または「posix」の場合があります。デフォルトは `bsd 'です
-g、-extern-ダイナミックライブラリとしてパッケージ化されている場合、外部シンボルのみを表示します。関数を呼び出す必要があります。外部シンボルは外部である必要があります。または使用しません。
-l、-line-numbersは、各シンボルのファイル名と行番号を表示します
-n、-numeric-アドレスでソートされたシンボルをソートします
-r、-reverse-ソートの逆順
-S、-print-size定義記号の表示サイズ
-u、-undefined-only未定義のシンボルのみを表示します
-X 32_64(無視)



一般的な表示形式

値(シンボル値)、タイプ(シンボルタイプ)、名前(シンボル名)



の種類

デフォルトの16進表現を使用して見つかったnmシンボリック値、および関数の前にそのタイプを追加します。

説明
シンボル絶対、リンクプロセスは変更できません
B / b 初期化されていないシンボルがbssセクションに表示されます
C パブリックシンボル、同名のシンボルはリンク時に上書きされます
D / d 初期化記号
G / g 小さなデータアクセスの最適化のための初期化シンボル
その他の間接参照記号
N デバッグシンボル
P シンボルスタック領域(空)
R / r 読み取り専用記号
S / s 初期化されていないシンボル、小規模なデータアクセスの最適化
T / t 市外局番記号
U または未定義の外部シンボル
u グローバルにユニークなGNU予約文字
V / v 弱い区切り文字(C ++強度シンボルの定義を参照)
W / W 弱い記号ですが、まだ定義されていませんオブジェクト弱い
- スタブフォーマットシンボル
認識されない記号