NM と聞いてすぐ思い浮かぶのがノートリアス・モンスターというゲーマー気質ですが、会社のデキル同僚が使っているのを見てほほーと思ったのでメモ。シンボルがないと利用できませんが、あれば、関数などもチェックできます。トラブルシューティングやデバッグ用途かな。
$ nm --help
使用法: nm [option(s)] [file(s)]
[file(s)] に含まれるシンボルを一覧表示します (デフォルトは a.out)。
オプション:
-a, --debug-syms デバッグ用のみのシンボルを表示する
-A, --print-file-name 各シンボルの前に入力ファイルの名前を表示する
-B --format=bsd と同様
-C, --demangle[=STYLE] 下位レベルのシンボル名を利用者レベルのシンボル名にデコードする
STYLE を指定する場合は `auto' (デフォルト),
`gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'
または `gnat'
--no-demangle 下位レベルのシンボルを名前復元 (demangle) しない
-D, --dynamic 通常シンボルの代わりに動的シンボルを表示する
--defined-only 定義済みのシンボルのみ表示する
-e (無視される)
-f, --format=FORMAT 出力形式を FORMAT にする。FORMAT は `bsd',
`sysv' または `posix'。 デフォルトは `bsd'
-g, --extern-only 外部シンボルのみ表示する
-l, --line-numbers 各シンボルに対してファイル名と行番号を探すために
デバッグ情報を使用する
-n, --numeric-sort シンボルをアドレスで数値的にソートする
-o -A と同様
-p, --no-sort シンボルをソートしない
-P, --portability --format=posix と同様
-r, --reverse-sort ソートの順番を逆にする
--plugin NAME 指定したプラグインを読み込む
-S, --print-size 定義されたシンボルのサイズを表示する
-s, --print-armap 書庫メンバからのシンボルの索引を含める
--size-sort シンボルをサイズでソートする
--special-syms 出力に特殊なシンボルを含める
--synthetic 合成したシンボルも表示する
-t, --radix=RADIX シンボルの値を表示する際に基数 RADIX を使用する
--target=BFDNAME ターゲットオブジェクト形式を BFDNAME として指定する
-u, --undefined-only 未定義シンボルのみ表示する
-X 32_64 (無視される)
@FILE オプションを FILE から読み込む
-h, --help この情報を表示する
-V, --version プログラムのバージョン番号を表示する
nm: サポートされているターゲット: elf64-x86-64 elf32-i386 elf32-x86-64 a.out-i386-linux pei-i386 pei-x86-64 elf64-l1om elf64-k1om elf64-little elf64-big elf32-little elf32-big plugin srec symbolsrec verilog tekhex binary ihex
バグを発見したら < > に報告して下さい。
翻訳に関するバグはに報告してください。
確認環境
$ cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)