#author("2018-04-04T15:23:12+00:00","","") #author("2018-05-16T12:57:54+00:00","","") #topicpath /////////////////////////////////////////////////////////////////////////////// * 目次 [#index] #contents(); /////////////////////////////////////////////////////////////////////////////// * nm [#b2bbca8f] /////////////////////////////////////////////////////////////////////////////// * 使い方 [#usage] - *.o, *.a, *.so, ELF ファイルを引数に渡す。 - 読み込む対象のファイルが C++ からコンパイルされたものである場合、可読性を保つために出力を c++filt に渡すか、 -C オプションを付ける。 $ nm hoge.o | c++filt $ nm -C hoge.o //----------------------------------------------------------------------------- ** シンボルタイプ [#symbol-type] |~表記 |~意味 | |A |グローバル絶対シンボル | |a |ローカル絶対シンボル | |B |グローバル bss シンボル | |b |ローカル bss シンボル | |D |グローバル・データ・シンボル | |d |ローカル・データ・シンボル | |f |ソース・ファイル名シンボル | |L |グローバル・スレッド・ローカル・シンボル (TLS) | |l |静的スレッド・ローカル・シンボル (TLS) | |T |グローバル・テキスト・シンボル | |t |ローカル・テキスト・シンボル | |U |未定義シンボル | |~表記 |~名前 |~意味 | |A |グローバル絶対値シンボル |リンクしても変化しない | |a |ローカル絶対値シンボル |~| |B |グローバル BSS シンボル |シンボルはみ初期化データ領域(BSS)にある | |b |ローカル BSS シンボル |~| |C |コモン(グローバル) | | |D |グローバル・データ・シンボル |シンボルは初期化済みデータセクションにある | |d |ローカル・データ・シンボル |~| |f |ソース・ファイル名シンボル | | |G |データセクション(グローバル) |シンボルは小さなオブジェクトで使われる初期化済みデータセクションにある(近くのシンボルはより効率よくアクセスできる場合があるため) | |g |データセクション(ローカル) |~| |L |グローバル・スレッド・ローカル・シンボル (TLS) | | |l |静的スレッド・ローカル・シンボル (TLS) | | |I |間接参照(グローバル) |シンボルは別のシンボルへの間接参照。a.out の GNU拡張 | |i |間接参照(ローカル) |~| |N |デバッグ用シンボル(グローバル) | | |n |デバッグ用シンボル(ローカル) | | |R |読み込み専用(グローバル) |シンボルは読み込み専用データセクションにある | |r |読み込み専用(ローカル) |~| |S |BSSグローバル(小さなオブジェクト用) | シンボルは小さなオブジェクトに使われる未初期化データセクションにある | |s |BSSローカル(小さなオブジェクト用) |~| |T |グローバル・テキスト・シンボル |シンボルはテキスト(コード)セクションにある | |t |ローカル・テキスト・シンボル |~| |U |未定義シンボル |未定義のシンボル。別のオブジェクトファイル若しくは共有ライブラリにシンボルがあるはず | |V |weakオブジェクト(グローバル) |シンボルはウィーク(weak)オブジェクト | |v |weakオブジェクト(ローカル) |~| |W |weakシンボル(グローバル) |シンボルは weak オブジェクトシンボルと決まっていない weak シンボル | |w |weakシンボル(ローカル) |~| |- | |シンボルは a.out オブジェクトファイルないの stabs シンボル(デバッグ情報など) | |? | |未知のシンボル | /////////////////////////////////////////////////////////////////////////////// * 参考リンク [#link] - [[IBM Knowledge Center - nm コマンド>https://www.ibm.com/support/knowledgecenter/ja/ssw_aix_61/com.ibm.aix.cmds4/nm.htm]]