[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
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'] [`-e'|`--debugging-tags'] [`-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] [`--special-syms'] [`-V'|`--version'] [`-H'|`--help'] objfile... |
objdump
は,一つ以上のオブジェクトファイルに関する情報を表示し ます.オプションで,表示する情報を制御します.この情報は,プログラムを コンパイルして動作させたいだけのプログラマより,コンパイルツールに関す る作業をしているプログラマに対し最も役に立ちます.
objfile...は,調査されるオブジェクトファイルです.アーカイブ を指定したとき,objdump
は,それぞれのメンバーオブジェクトファ イルの情報を表示します.
ここに交互に表示しているオプションの長い形式と短い形式は等価です.リス トの`-a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-r,-R,-s,-S,-t,-T,-V,-x'から 少なくとも一つのオプションを与える必要があります.
-a
--archive-header
--adjust-vma=offset
a.out
のようなセクションアドレ スが存在しないフォーマットを使用しているとき,セクションを特定のアドレ スに配置するとき発生します.
-b bfdname
--target=bfdname
例えば,以下のようにします.
objdump -b oasys -m vax -h fu.o |
-C
--demangle[=style]
-g
--debugging
readelf -w
でサポートされています.See 節 14. readelf.
-e
--debugging-tags
-d
--disassemble
-D
--disassemble-all
--prefix-addresses
-EB
-EL
--endian={big|little}
-f
--file-headers
--file-start-context
-h
--section-headers
--headers
ファイルのセグメントは,非標準のアドレスに再配置され,例えば, `-Ttext',`-Tdata',または`-Tbss'オプションが ld
で使用されています.しかし,a.out
のようなオブジェク トファイルのフォーマットによっては,ファイルセグメントの開始アドレスを 保存しないものもあります.そのような状況では,ld
がセクション を正しく再配置しますが,ファイルのセクションのヘッダのリストに `objdump -h'を使用しても,正しいアドレスを表示することは不可能です. その代わりに,それは通常のアドレスを表示し,それらはターゲットに対して 暗黙のうちに行われます.
-H
--help
objdump
に対するオプションの概要を出力し,終了します.
-i
--info
-j name
--section=name
-l
--line-numbers
-m machine
--architecture=machine
-M options
--disassembler-options=options
ターゲットが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に対して,このオプションは逆アセンブルした命令でのニーモニック名と レジスタ名の出力を制御します.以下を複数選択するため,カンマで分離した 文字列で指定することが可能で,無効のオプションは無視されます.
no-aliases
gpr-names=ABI
fpr-names=ABI
cp0-names=ARCH
hwr-names=ARCH
rdhwr
命令で使用される,hardware register(ハードウェアレジス タ))名を,CPUまたはARCHで指定されたアーキテクチャに対して適切に出 力します.デフォルトで,HWR名は,逆アセンブルされたバイナリのアーキテク チャとCPUに対応して選択されます.
reg-names=ABI
reg-names=ARCH
上記でリストアップされているすべてのオプションに対し,ABIや ARCHは,選択されているレジスタに対する名前ではなく,出力される番 号となる`numeric'として指定します.`--help'を使用して,利用 可能なABIとARCHの値をリストアップすることが可能です.
-p
--private-headers
-r
--reloc
-R
--dynamic-reloc
-s
--full-contents
-S
--source
--show-raw-insn
--no-show-raw-insn
-G
--stabs
.stab
デバッグシンボルテーブルのエントリーがELFのセクションに運び 込まれる(Solaris 2.0のような)システムでのみ役に立ちます.そのほかのほと んどのフォーマットでは,デバッグシンボルテーブルのエントリーは,リンク シンボルとともにバラバラに配置され,`--syms'の出力で見ることが可 能となります.
スタブシンボルの詳細は,節 `Stabs Overview' in
--start-address=address
--stop-address=address
-t
--syms
-T
--dynamic-syms
--special-syms
-V
--version
objdump
のバージョンナンバーを出力し終了します.
-x
--all-headers
-w
--wide
-z
--disassemble-zeroes
[ << ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |