スポンサーリンク

NM

名称
書式
解説
オプション
関連項目
COPYRIGHT
日本語訳

名称

nm − オブジェクトファイルからシンボルをリストする

書式

nm [−a−−debug−syms] [−g−−extern−only] [−B] [−C−−demangle[=style]] [−D−−dynamic] [−S−−print−size] [−s−−print−armap] [−A−o−−print−file−name] [−n−v−−numeric−sort] [−p−−no−sort] [−r−−reverse−sort] [−−size−sort] [−u−−undefined−only] [−t radix−−radix=radix] [−P−−portability] [−−target=bfdname] [−fformat−−format=format] [−−defined−only] [−l−−line−numbers] [−−no−demangle] [−V−−version] [−X 32_64] [−−help] [objfile...]

解説

GNU nm はオブジェクトファイル objfile... からシンボルをリストします。 引数でオブジェクトファイルが与えられないと、 nma.out を対象と し ま す。

各シンボルに対し、nm は次のものを表示します:

シンボルの値を、オプションで選択された基数 (後述) またはデフォ ルトの 16 進数で表示します。

シンボルの型。少なくとも次の型が使用されます。他の型について は オブジェクトファイルフォーマットに依存します。小文字の場合シンボル はローカルであり、大文字の場合シンボルはグローバル (外部的です)。

"A"

シンボルの値は絶対的であり、さらなるリンクによって変更 さ れません。

"B"

シンボルは未初期化データセクション ( BSS のこと) にありま す。

"C"

シンボルはコモンです。コモンシンボルは未初期化 デー タ で す。リンク時には、複数のコモンシンボルが同一の名前として見え得 ます。シンボルがどこかで定義されている場合、コモンシンボルは未 定義の参照として扱われます。

"D"

シンボルは初期化済データセクションにあります。

"G"

シンボルは、小さいオブジェクト用の、初期化済データセク ションにあります。オブジェクトフォーマットによっては、小 さ い データオブジェクトへのより効率の良いアクセスを提供しているもの があります。小さいオブジェクトとは、例えば、大きなグローバル配 列に対する、グローバル int 変数のことを指します。

"I"

シ ン ボ ル は、他のシンボルに対する間接参照です。これ は、a.out オブジェクトファイルフォーマットに対する GNU 拡張 で すが、ほとんど使われません。

"N"

シンボルはデバッグシンボルです。

"R"

シンボルは読み取り専用セクションにあります。

"S"

シンボルは、小さいオブジェクト用の、未初期化データセク ションにあります。

"T"

シンボルは、テキスト (コード) セクションにあります。

"U"

シンボルは未定義です。

"V"

シンボルは弱いオブジェクトです。弱く定義されたシンボル が 通常定義されたシンボルとリンクされるとき、エラー無しで通常定義 されたシンボルが使用されます。弱い未定義なシンボルがリンクされ そ の シンボルが未定義なとき、弱いシンボルの値はエラー無しに 0 になります。

"W"

シンボルは弱いオブジェクトですが、弱いオブジェクトであ る とは特に指定されていませんでした。弱く定義されたシンボルが通常 定義されたシンボルとリンクされるとき、エラー無しで通常定義され たシンボルが使用されます。弱い未定義なシンボルがリンクされその シンボルが未定義なとき、弱いシンボルの値はエラー無しに 0 に な ります。

"−"

シンボルは、a.out オブジェクトファイルの stabs シンボルで す。この場合、次に表示される値は、 stabs の 他 の フィー ル ド、stabs の desc フィールド、stab タイプです。 stabs シンボル はデバッグ情報を保持するために使用されます。

"?"

シンボルの型は未知であり、オブジェクトファイルフォー マッ ト固有です。

シンボル名。

オプション

以下で選択肢として示した、オプションの長形式と短形式は等価です。

−A

−o

−−print−file−name

入力ファイルに含まれるすべてのシンボルの前に一度だけ入力ファイルを 表示するのではなく、各シンボルの前に それが含まれる入力ファイル 名 (またはアーカイブメンバ) を表示します。

−a

−−debug−syms

デ バッ ガ専用シンボルであっても、全シンボルを表示します。通常、デ バッグ専用シンボルはリストされません。

−B

−−format=bsd と同じです ( MIPSnm との互換性のためにあ り ま す)。

−C

−−demangle[=style]

低レベルのシンボル名をユーザレベルの名前にデコード (demangle) しま す。さらにシステムが付加した先頭のアンダスコアもすべて取り除 く の で、 これによって C ++ の関数名がわかりやすくなります。コンパイラご とに、マングル方法が異なります。オプションのデマングルスタイル引数 を使用することで、コンパイラにあったデマングルスタイルを選択可能で す。

−−no−demangle

低レベルのシンボル名をデマングルしません。これがデフォルトです。

−D

−−dynamic

通常のシンボルではなくダイナミックシンボルを表示します。これは、あ る種の共有ライブラリなどのダイナミックオブジェクトに対してのみ意味 を持ちます。

−f format

−−format=format

出力形式として format を使います。 "bsd", "sysv", "posix" が指定で きます。デフォルトは "bsd" です。 format の 1 文字目だけが重要で、 大文字でも小文字でも構いません。

−g

−−extern−only

外部シンボルだけを表示します。

−l

−−line−numbers

各シンボルについて、デバッグ情報を使ってファイル名と行番号を見つけ るよう試みます。定義されているシンボルについては、シンボルのアドレ スに対応する行番号を捜します。未定義のシンボルについては、そのシン ボルを参照している再配置エントリの行番号を捜します。行番号情報が見 つけられたなら、他のシンボル情報の後に表示します。

−n

−v

−−numeric−sort

シンボルを名前のアルファベット順ではなく、シンボルのアドレスで数値 順にならべます。

−p

−−no−sort

シンボルの並べ替えを一切しません。単に出て来た順に表示します。

−P

−−portability

デ フォ ルトの形式のかわりに POSIX .2 標準の出力形式を使います。 −f posix と等価です。

−S

−−print−size

"bsd" 出力形式において、定義されたシンボルの (値でなく) 大きさを表 示します。

−s

−−print−armap

アーカイブのメンバのシンボルをリストする際に、インデックスを含めま す。インデックス (アーカイブ中に arranlib によって置かれま す) とはどのモジュールにどの名前の定義が含まれているかの対応の事です。

−r

−−reverse−sort

(数値またはアルファベットによる) 並べ替えを逆順にします。最後が 最 初に来るようにします。

−−size−sort

シンボルをサイズで並べ替えます。サイズはシンボルの値とその次に高位 の値を持つシンボルの値の間の差分から計算されます。 "bsd" 出力形 式 を使用する場合は、シンボルの (値でなく) サイズが表示されます。値と サイズの両方を表示させるためには、−S を使用しなければなりません。

−t radix

−−radix=radix

シンボルの値を表示する際に radix を基数として使います。指定 は、10 進の場合は d、8 進の場合は o、16 進の場合は x のいずれかです。

−−target=bfdname

システムのデフォルトの形式ではないオブジェクトコード形式を指定しま す。

−u

−−undefined−only

未定義シンボル (各オブジェクトファイルの外部シンボル) のみを表示し ます。

−−defined−only

各オブジェクトファイルに対し、定義されているシンボルのみを表示しま す。

−V

−−version

nm のバージョン番号を表示して終了します。

−X

AIXnm との互換性のために、本オプションは無視されます。パラ メー タひとつを取り、それは 32_64 であることが必要です。 AIX nm の デフォルトモードは −X 32 に対応しますが、これは GNU nm はサポー ト していません。

−−help

nm のオプションのサマリを表示して終了します。

関連項目

ar(1), objdump(1), ranlib(1), Info の binutils の項。

COPYRIGHT

Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled ‘‘ GNU Free Documentation License’’.

日本語訳

野首 寛高(hnokubi@yyy.or.jp): FreeBSD 用に翻訳

スポンサーリンク