objdump [-a|--archive-headers]
[-b bfdname|--target=bfdname]
[-C|--demangle[=style] ]
[-d|--disassemble]
[-D|--disassemble-all]
[-z|--disassemble-zeroes]
[-EB|-EL|--endian={big | little }]
[-f|--file-headers]
[--file-start-context]
[-g|--debugging]
[-h|--section-headers|--headers]
[-i|--info]
[-j section|--section=section]
[-l|--line-numbers]
[-S|--source]
[-m machine|--architecture=machine]
[-M options|--disassembler-options=options]
[-p|--private-headers]
[-r|--reloc]
[-R|--dynamic-reloc]
[-s|--full-contents]
[-G|--stabs]
[-t|--syms]
[-T|--dynamic-syms]
[-x|--all-headers]
[-w|--wide]
[--start-address=address]
[--stop-address=address]
[--prefix-addresses]
[--[no-]show-raw-insn]
[--adjust-vma=offset]
[-V|--version]
[-H|--help]
objfile...
objdumpは,一つ以上のオブジェクトファイルに関する情報を表示 します.オプションで,表示する情報を制御します.この情報は,プログラム をコンパイルして動作させたいだけのプログラマより,コンパイルツールに関 する作業をしているプログラマに対し最も役に立ちます.
objfile...は,調査されるオブジェクトファイルです.アーカイブ を指定したとき,objdumpは,それぞれのメンバーオブジェクトファ イルの情報を表示します.
ここに交互に表示しているオプションの長い形式と短い形式は等価です.リス トの-a,-d,-D,-f,-g,-G,-h,-H,-p,-r,-R,-S,-t,-T,-V,-xから少なく とも一つのオプションを与える必要があります.
a.outのようなセクションアドレ
スが存在しないフォーマットを使用しているとき,セクションを特定のアドレ
スに配置するとき発生します.
例えば,以下のようにします.
objdump -b oasys -m vax -h fu.o
それは,fu.oのセクションヘッダ(-h)からの情報の概要を表
示し,それは特に,Oasysコンパイラで生成されるフォーマットのVAXオブジェ
クトファイルとして認識(-m)されます.-iオプションを用
いて利用可能なフォーマットをリストアップすることが可能です.詳細は,
See Target Selection.
ファイルのセグメントは,非標準のアドレスに再配置され,例えば,
-Ttext,-Tdata,または-Tbssオプションが
ldで使用されています.しかし,a.outのようなオブジェク
トファイルのフォーマットによっては,ファイルセグメントの開始アドレスを
保存しないものもあります.そのような状況では,ldがセクション
を正しく再配置しますが,ファイルのセクションのヘッダのリストに
`objdump -h'を使用しても,正しいアドレスを表示することは不可能で
す.その代わりに,それは通常のアドレスを表示し,それらはターゲットに対
して暗黙のうちに行われます.
ターゲットがARMアーキテクチャの場合,逆アセンブラが使用されている間に 使用するレジスタ名のセットを選択するために,このスイッチを使用すること が可能です.-M reg-name-std (デフォルト)を指定すると,ARMの命 令セットのドキュメントで使用しているレジスタ名を選択し,'sp'と呼ばれる レジスタ13,'lr'と呼ばれるレジスタ14,そして'pc'と呼ばれるレジスタ15を 使用します.-M reg-names-apcsを指定すると,ARM Procedure Call Standardで使用されている名前のセットを選択するのに対し,-M reg-names-rawを指定すると,`r'にレジスタ番号が続いたものを使用し ます.
APCSレジスタ命名規則には二つの変形があり,-M reg-names-atpcs と-M reg-names-special-atpcsにより利用可能で,それはARM/Thumb Procedure Call Standard命名規約を使用します.(通常のレジスタ名,または, 特殊なレジスタ名のどちらかを使用します.)
このオプションは,ARMアーキテクチャに対し,スイッチ --disassembler-options=force-thumbを使用して,すべての命令を Thumb命令として解釈するように逆アセンブラに強制するためにも使用するこ とが可能です.他のコンパイラで生成される thumb コードの逆アセンブラを 試みるとき,これは役に立つはずです.
x86に対して,オプションによっては-mのスイッチの機能を複製しま すが,よりきめ細かい制御が可能になります.以下の複数のセクションをカン マで分けられた文字列として指定してもかまいません.x86-64, i386,そしてi8086は該当するアーキテクチャに対する逆 アセンブルを選択します.intelとattは,インテルの構文 のモードとAT&Tの構文のモードを選択します.addr32, addr16,data32,そしてdata16は,デフォルト のアドレスの大きさとオペランドの大きさを指定します.これらの四つのオプ ションは,それ以降のオプション文字列にx86-64,i386, またはi8086が現れる場合は,そちらが優先されます.最後は suffixで,これはAT&Tモードのとき,サフィックスがオペランドで 推測可能なときでさえ,逆アセンブラはニーモニックサフィックスを出力しま す.
PPCに対し,booke,booke32,そしてbooke64は BookE命令の逆アセンブラを選択します.32と64は,それ ぞれPowerPCとPowerPC64の逆アセンブラを選択します.
MIPSに対して,このオプションは逆アセンブルした命令でのレジスタ名の出力 を制御します.以下を複数選択することは,カンマで分けた文字列で指定し, 無効のオプションは無視されます.
gpr-names=ABIfpr-names=ABIcp0-names=ARCHhwr-names=ARCHrdhwr命令で使用される,hardware register(ハードウェアレジス
タ))名を,CPUまたはARCHで指定されたアーキテクチャに対して適切に
出力します.デフォルトで,HWR名は,逆アセンブルされたバイナリのアーキ
テクチャとCPUに対応して選択されます.
reg-names=ABIreg-names=ARCH上記でリストアップされているすべてのオプションに対し,ABIや
ARCHは,選択されているレジスタに対する名前ではなく,出力される番
号となる`numeric'として指定します.--helpを使用して,利
用可能なABIとARCHの値をリストアップすることが可能です.
.stabデバッグシンボルテーブルのエントリーがELFのセクションに運
び込まれる(Solaris 2.0のような)システムでのみ役に立ちます.そのほかの
ほとんどのフォーマットでは,デバッグシンボルテーブルのエントリーは,リ
ンクシンボルとともにバラバラに配置され,--symsの出力で見るこ
とが可能となります.
スタブシンボルの詳細は,Stabsを参照してください.