objdump -
オブジェクトファイルの情報を表示する
- objdump
- [-a|--archive-headers]
[-b bfdname | --target=bfdname]
[-C|--demangle] [--debugging]
[-d|--disassemble] [-D|--disassemble-all]
[--disassemble-zeroes]
[-EB|-EL|--endian={big|little}]
[-f|--file-headers] [-h|--section-headers |
--headers] [-i|--info]
[-j section | --section=section]
[-l|--line-numbers] [-m machine |
--architecture=machine] [--prefix-addresses]
[-r|--reloc] [-R|--dynamic-reloc]
[-s|--full-contents] [-S|--source]
[--[no-]show-raw-insn] [--stabs] [-t|--syms]
[-T|--dynamic-syms] [-x|--all-headers]
[--start-address=address]
[--stop-address=address ]
[--adjust-vma=offset] [--version] [--help]
objfile...
objdump
は指定されたひとつ以上のオブジェクトファイルについて、その情報を表示す
る。オプションで表示する情報の種類を指定できる。この情報はコンパイルツー
ルに関する作業をしているプログラマーにとってもっとも有益であろう。逆に
単に自分のプログラムをコンパイルして実行させているだけの場合にはあまり
役に立たないかもしれない。
objfile
は調べるオブジェクトファイルである。書庫
(archive)
を指定した場合には、
objdump
は書庫のメンバーであるオブジェクトファイルそれぞれについての情報を表示
する。
長い形式と短い形式が併記されている場合は、それらは等価である。少なくと
も
-l (
--line-numbers)
以外のオプションをひとつ指定しなければならない。
- -a
- --archive-headers
-
objfile
に書庫が含まれている場合は、書庫のヘッダ情報を
ls -l
のような形式で表示する。
ar tv
によって得られる情報に加え、
objdump -a
ではそれぞれの書庫メンバーのオブジェクトファイルフォーマットも表示する。
-
--adjust-vma=offset
- 情報をダンプするときに、まず
offset
を全てのセクションアドレスに加える。これはセクションアドレスがシンボル
テーブルに関連付けされていないときに便利である。このような状況が起こる
のは、 a.out
のようにセクションアドレスを持てないフォーマットの使用時
に、セクションを特定のアドレスに置く場合などである。
-
--target=bfdname
- オブジェクトファイルのオブジェクトコードフォーマットを
bfdname
として取り扱う。通常これは必要ではなく、
objdump
は自動的に多くのフォーマットを認識できる。例えば
objdump -b oasys -m vax -h fu.o
とすれば fu.o
のセクションヘッダ
(`-h')
が表示される。この際
fu.o は Oasys
コンパイラによって生成されたフォーマットの
Vax オブジェクトファ
イルであるとして取り扱われる。指定可能なフォーマットのリストは
`-i'
オプションによって得られる。
- -C
- --demangle
- 低レベルのシンボル名をユーザーレベルのシンボル名にデコード
( demangle)
する。このときシステムによって前置されたアンダースコ
アも削除される。この操作によって
C++
の関数名が可読になる。
- --debugging
- デバッグ情報を表示する。ファイル中のデバッグ情報を解析して、
C のよう
な文法で表示しようと試みる。対応しているデバッグ情報の形式はあまり多く
ない。
- -d
- --disassemble
-
objfile
の機械語命令に対応するアセンブラのニーモニックを表示する。このオプショ
ンは、命令を含むと思われるセクションのみを逆アセンブルする。
- -D
- --disassemble-all
-
-d
と似ているが、命令を含むと思われるセクションだけでなく、全てのセクショ
ンを逆アセンブルする。
- --prefix-addresses
- 逆アセンブルするとき、それぞれの行に絶対アドレスを表示する。これは古い
逆アセンブルフォーマットである。
- --disassemble-zeroes
- 通常逆アセンブルの出力では
0
からなるブロックはスキップする。このオプ
ションを指定すると、これらの
0
ブロックも他のデータと同様に逆アセンブ
ルされる。
- -EB
- -EL
-
--endian={big|little}
- オブジェクトファイルのエンディアンを指定する。逆アセンブルにのみ影響す
る。これは S-record
のようなエンディアン情報を含まないフォーマットを逆
アセンブルするときに効果的である。
- -f
- --file-headers
-
objfile
のそれぞれに対して
overall
ヘッダ情報の要約を表示する。
- -h
- --section-headers
- --headers
- オブジェクトファイルのセクションヘッダ情報の要約を表示する。
- --help
-
objdump
のオプションの要約を表示して終了する。
- -i
- --info
- オプション -b
および -m
と共に指定できるアーキテクチャとオブジェクトフォーマットの一覧を表示す
る。
-
--section=name
- セクション name
だけの情報を表示する。
- -l
- --line-numbers
- 表示しているオブジェクトコードに、ソースのファイル名と行を
(デバッグ情
報を用いて)
関連付けし、表示する。
-d、 -D、 -r
などと同時に用いる。
-
--architecture=machine
- オブジェクトファイルを逆アセンブルするとき、アーキテクチャを指定する。
これは S-record
のような、アーキテクチャの情報を持たないオブジェクトファ
イルを逆アセンブルするときに有用である。指定可能なアーキテクチャンのリ
ストは -i
オプションによって得られる。
- -r
- --reloc
- ファイルのリロケーションエントリを表示する。
-d または -D
とともに用いると、エントリは逆アセンブルコードの中に埋め込ま
れて表示される。
- -R
- --dynamic-reloc
- ファイルのダイナミックリロケーションエントリを表示する。これはある種の
共有ライブラリのような、ダイナミックオブジェクトに対してのみ意味を持つ。
- -s
- --full-contents
- 指定したそれぞれのセクションに対して、全ての内容を表示する。
- -S
- --source
- (可能であれば)
ソースコードを逆アセンブル結果と混在させて表示する。
-d
が暗黙のうちに指定される。
- --show-raw-insn
- マシン語を逆アセンブルするとき、命令コードを
16
進コードとシンボリック
な記法と両方で表示する。これは
--prefix-addresses
が指定されていない場合のデフォルトである。
- --no-show-raw-insn
- マシン語を逆アセンブルするとき、16
進のバイトコードを表示しない。これ
は --prefix-addresses
が指定された場合のデフォルトである。
- --stabs
- ELF ファイルの .stab、
.stab.index、 .stab.excl
各セクションの内容を表
示する。これは .stab
のデバッグ用シンボルテーブルエントリが
ELF セクショ
ンに含まれているシステム
(Solaris 2.0 など)
に対してのみ有効である。他
のほとんどのフォーマットでは、デバッグ用シンボルテーブルエントリはリン
ク用のシンボルに混ざっており、
--syms
の出力によって見ることができる。
-
--start-address=address
- データの表示開始点を指定したアドレスにする。これは
-d、 -r、 -s
オプションの出力に対して効力を持つ。
-
--stop-address=address
- データの表示終了点を指定したアドレスにする。これは
-d、 -r、 -s
オプションの出力に対して効力を持つ。
- -t
- --syms
- ファイルのシンボルテーブルエントリを表示する。これは
nm
プログラムによって得られる情報とほぼ同じ。
- -T
- --dynamic-syms
- ファイルの動的なシンボルテーブルエントリを表示する。これはある種の共有
ライブラリのように、動的なオブジェクトの場合にのみ意味を持つ。これは
nm プログラムに -D
(--dynamic)
オプションを指定した場合に得られる情報とほぼ同じ。
- --version
-
objdump
のバージョン番号を表示して終了する。
- -x
- --all-headers
- 表示可能な全てのヘッダ情報を表示する。シンボルテーブル、リロケーション
エントリも表示する。
-x は -a -f -h -r -t
の全てを指定した場合と等価である。
info の `
binutils '
エントリ、
The GNU Binary Utilities,
Roland H. Pesch (October 1991)、
nm(
1)
Copyright (c) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this manual
provided the copyright notice and this permission notice are preserved on all
copies.
Permission is granted to copy and distribute modified versions of this manual
under the conditions for verbatim copying, provided that the entire resulting
derived work is distributed under the terms of a permission notice identical
to this one.
Permission is granted to copy and distribute translations of this manual into
another language, under the above conditions for modified versions, except
that this permission notice may be included in translations approved by the
Free Software Foundation instead of in the original English.