Linuxコマンド.NETLinuxコマンド.NETLinuxコマンドを中心にIT技術関係の情報を発信します。Linuxコマンドについてはできるだけ実行例と実行結果を紹介したいと思います。Linuxコマンドnmコマンドはオブジェクトファイルや実行ファイルを指定することでそのオブジェクトファイルのシンボル情報を確認できます。シンボル情報は、コンパイラがソースコードにある変数名などの情報をオブジェクトファイルに変換するときに、どのように変換されたかの情報を確認できるため、デバッグ情報として利用できるかもしれません。mainのような形式でシンボル情報が表示されます。左がシンボル値(デフォルト:16進数)、真ん中がシンボルのタイプ、一番右がシンボル名になります。シンボルのタイプは例えば、以下のような種類があります。シンボルのタイプは基本的に大文字がグローバルで、小文字がローカルとなります。シンボルタイプが不明シンボル情報を表示nmコマンドはオブジェクトファイルを指定するとシンボル情報を表示できます。nmコマンドで引数を指定しない場合、a.outのファイルが指定されます。mainファイル名も表示(-Aオプションまたは-oオプション)-Aオプションまたは-oオプションを用いるとシンボル情報にファイル名の情報が表示されます。mainデバッグ用のシンボルを含めすべてのシンボルを表示(-aオプション)-aオプションを用いると通常では表示されないシンボルがすべて表示されます。prog.c動的シンボルの情報を表示(-Dオプション)-Dオプションを用いると動的シンボルの情報を表示します。動的シンボルの情報は共有ライブラリ等を使用しているオブジェクトファイルで確認できます。puts出力フォーマットを指定(-fオプション)-fオプションを用いると出力フォーマットを変更できます。'posix'になります。デフォルトの出力フォーマットは'bsd'になります。posixと同じになります。externalシンボルのみを表示(-gオプション)-gオプション用いると外部に公開されているシンボルのみが表示されます。C言語のstatic修飾子を用いるとシンボルのスコープがそのファイルのみになります。ここでnmコマンドの-gオプションを用いて、シンボル情報を確認するとstatic修飾子を用いたシンボルが表示されません。testfunc未定義シンボルのみを表示(--undefined-onlyオプション)--undefined-onlyオプションを用いると未定義シンボルのみを表示します。func3定義済みシンボルのみを表示(--defined-onlyオプション)--defined-onlyオプションを用いると定義済みシンボルのみが表示されます。mainデバッグ情報を利用してシンボルに行番号を追加(-lオプション)-lオプションを用いるとオブジェクトファイルにあるデバッグ情報を利用して行番号を追加して表示します。デバッグ情報は例えば、gccの-gオプションを用いると作成されるオブジェクトファイルにデバッグ情報が追加されます。/home/ubuntu/test_objdump/prog.c:7シンボル値でソート(-nオプションまたは-vオプション)-nオプションまたは-vオプションを用いるとシンボル値でソートされます。mainシンボルのサイズを表示(-Sオプション)-Sオプションを用いるとシンボル値の後にシンボルのサイズが表示されます。--size-sortオプションを用いるとそのサイズでソートを行うことができます。main逆順でソート(-rオプション)-rオプションを用いると逆順でソートを行うことができます。-nオプションと一緒に用いるとシンボル値で逆順のソートを行うことができます。putsまた、-nオプション等のオプションがない場合、シンボル名をアルファベット順の逆順でソートします。mainアーカイブファイルのインデックスを含むシンボル情報を表示(-sオプション)-sオプションを用いるとシンボル情報のほかにアーカイブファイルのインデックス情報が表示されます。putsシンボル値の基数を指定(-tオプション)-tオプションを用いるとシンボル値の基数を変更できます。シンボル値の基数のデフォルトは16進数になります。(16進数)になります。コメントをキャンセルメールアドレスが公開されることはありません。*次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。Linuxコマンド.NET.。