i686-linux-gnu-objdump - クラウドでオンライン

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド i686-linux-gnu-objdump です。

プログラム:

NAME


objdump-オブジェクトファイルからの情報を表示します。

SYNOPSIS


オブジェクトダンプ [-a|-アーカイブヘッダー]
[-b 友人名|--target =友人名]
[-C|-デマングル[= ]]
[-d|-分解する]
[-D|-分解-すべて]
[-z|-分解-ゼロ]
[-EB|-THE|-エンディアン={大きい| 少し }]
[-f|-ファイルヘッダー]
[-F|-ファイル-オフセット]
[--ファイル開始コンテキスト]
[-g|-デバッグ]
[-e|--デバッグタグ]
[-h|-セクションヘッダー|-ヘッダー]
[-i|- 情報]
[-j |--section = ]
[-l|-行番号]
[-S|- ソース]
[-m 機械|-アーキテクチャ=機械]
[-M オプション|-逆アセンブラ-オプション=オプション]
[-p|-プライベートヘッダー]
[-P オプション|-プライベート=オプション]
[-r|--再配置]
[-R|-動的-再配置]
[-s|-フルコンテンツ]
[-W [lLiaprmfFsoRt]|
-ドワーフ[= rawline、= decodeline、= info、= abbrev、= pubnames]
[= areranges、= macro、= frames、= frames-interp、= str、= loc]
[= Ranges、= pubtypes、= trace_info、= trace_abbrev]
[= trace_aranges、= gdb_index]
[-G|-スタブ]
[-t|--shms]
[-T|--dynamic-syms]
[-x|-すべてのヘッダー]
[-w|- 幅]
[--start-address =住所]
[--stop-address =住所]
[--プレフィックス-アドレス]
[-[no-] show-raw-insn]
[--adjust-vma =オフセット]
[--特別なシムズ]
[--prefix =接頭辞]
[--prefix-strip =レベル]
[--insn-width =]
[-V|- バージョン]
[-H| - 助けて]
オブジェクトファイル...

DESCRIPTION


オブジェクトダンプ XNUMX つまたは複数のオブジェクト ファイルに関する情報を表示します。 の
オプションは、表示する特定の情報を制御します。 これ
情報は、主に、
コンパイル ツールが必要なだけのプログラマーとは対照的です。
コンパイルして動作するプログラム。

オブジェクトファイル... は、検査対象のオブジェクト ファイルです。 指定すると
アーカイブ、 オブジェクトダンプ 各メンバー オブジェクト ファイルの情報を示します。

OPTIONS


オプションの長い形式と短い形式は、ここでは代替として示されていますが、
同等。 リストから少なくとも XNUMX つのオプション
-a、-d、-D、-e、-f、-g、-G、-h、-H、-p、-P、-r、-R、-s、-S、-t、-T 、-V、-x を与える必要があります。

-a
-アーカイブヘッダー
のいずれかが オブジェクトファイル ファイルはアーカイブです。アーカイブを表示します
ヘッダー情報 ( ls -l)。 以外にも
リストできる情報 ar tv, オブジェクトダンプ -a オブジェクトを示します
各アーカイブ メンバーのファイル形式。

--adjust-vma =オフセット
情報をダンプするときは、最初に追加します オフセット すべてのセクションに
アドレス。 これは、セクション アドレスが一致しない場合に役立ちます。
シンボルテーブルに対応します。これは、配置時に発生する可能性があります
できないフォーマットを使用する場合、特定のアドレスのセクション
a.outなどのセクションアドレスを表します。

-b 友人名
--target =友人名
オブジェクトファイルのオブジェクトコード形式が次のようになっていることを指定します
友人名. このオプションは必要ない場合があります。 オブジェクトダンプ できる
多くのフォーマットを自動的に認識します。

たとえば、

objdump -b oasys -m vax -h fu.o

セクションヘッダーからの要約情報を表示します(-h)of ふーお,
これは明示的に識別されます (-m) の VAX オブジェクト ファイルとして
Oasys コンパイラによって生成される形式。 フォーマットを一覧表示できます
で利用可能 -i オプションを選択します。

-C
--demangle [= ]
デコード(デマングル) 低レベルのシンボル名をユーザーレベルの名前に変換します。
システムによって先頭に追加された最初のアンダースコアを削除するだけでなく、
これにより、C++ 関数名が読みやすくなります。 さまざまなコンパイラには、
さまざまなマングリングスタイル。 オプションのデマングリング スタイル引数
に適したデマングリング スタイルを選択するために使用できます。
コンパイラ。

-g
-デバッグ
デバッグ情報を表示します。 これは STABS の解析を試み、
ファイルに保存されている IEEE デバッグ フォーマット情報を出力します。
C のような構文を使用して出力します。 これらの形式のいずれも見つからない場合
このオプションは -W DWARFを印刷するオプション
ファイル内の情報。

-e
--デバッグタグ
いいね -g、ただし、情報は互換性のある形式で生成されます
ctags ツールを使用します。

-d
-分解する
からの機械命令のアセンブラニーモニックを表示します。
オブジェクトファイル. このオプションは、以下のセクションのみを逆アセンブルします。
指示が含まれていると予想されます。

-D
-分解-すべて
いいね -dだけでなく、すべてのセクションの内容を逆アセンブルします。
指示が含まれていると予想されるもの。

このオプションは、の分解にも微妙な影響を与えます。
コードセクションの指示。 オプション時 -d 有効です
コードセクションに存在するシンボルは、
命令間の境界であり、逆アセンブルを拒否します
そんな境界を越えて。 オプション時 -D 有効ですが、これ
仮定が抑制されます。 これは、
の出力 -d および -D たとえば、データが保存されている場合に異なります
コードセクション。

ターゲットが ARM アーキテクチャの場合、このスイッチには
逆アセンブラに見つかったデータの断片を強制的にデコードさせる効果
命令であるかのようにコード セクションで。

--プレフィックス-アドレス
逆アセンブルするときは、各行に完全なアドレスを印刷してください。 これ
古い逆アセンブリ形式です。

-EB
-THE
--endian = {big | little}
オブジェクトファイルのエンディアンを指定します。 これは影響するだけです
分解。 これは、ファイル形式を逆アセンブルするときに役立ちます。
S レコードなどのエンディアン情報を記述しません。

-f
-ファイルヘッダー
各のヘッダー全体からの要約情報を表示します
オブジェクトファイル ファイル。

-F
-ファイル-オフセット
セクションを分解するとき、シンボルが表示されるたびに、
これから作成されるデータ領域のファイル オフセットを表示します。
ダンプされました。 ゼロがスキップされている場合は、分解時に
再開し、スキップされたゼロの数とファイル
逆アセンブリが再開される位置のオフセット。 いつ
ダンプ セクションからの場所のファイル オフセットを表示します。
ダンプが始まる場所。

--ファイル開始コンテキスト
インターリストされたソースコード/逆アセンブルを表示するときに指定します
(仮定 -S) まだ表示されていないファイルから、拡張する
コンテキストをファイルの先頭に。

-h
-セクションヘッダー
-ヘッダー
オブジェクトのセクション ヘッダーから要約情報を表示する
ファイルにソフトウェアを指定する必要があります。

ファイル セグメントは、非標準アドレスに再配置される場合があります。
を使用した例 -Ttext, -Tdataまたは -TBS オプション ld.
ただし、a.out などの一部のオブジェクト ファイル形式では、
ファイルセグメントの開始アドレス。 それらの状況では、
しかし ld を使用して、セクションを正しく再配置します オブジェクトダンプ -h 〜へ
list the file セクション ヘッダーは正しいアドレスを表示できません。
代わりに、通常のアドレスが表示されます。
ターゲット。

-H
- 助けて
オプションの概要を印刷して オブジェクトダンプ 終了します。

-i
- 情報
すべてのアーキテクチャとオブジェクト形式を示すリストを表示します
で指定可能 -b or -m.

-j
--section =
セクションの情報のみを表示する .

-l
-行番号
ファイル名で(デバッグ情報を使用して)ディスプレイにラベルを付けます
オブジェクトコードまたは再配置に対応するソース行番号
示す。 でのみ有用 -d, -Dまたは -r.

-m 機械
-アーキテクチャ=機械
オブジェクト ファイルを逆アセンブルするときに使用するアーキテクチャを指定します。
これは、そうでないオブジェクト ファイルを逆アセンブルするときに役立ちます。
S レコードなどのアーキテクチャ情報を記述します。 リストできます
で利用可能なアーキテクチャ -i オプションを選択します。

ターゲットが ARM アーキテクチャの場合、このスイッチには
追加効果。 分解をそれらのみに制限します
によって指定されたアーキテクチャによってサポートされる命令 機械.
入力ファイルがそうするためにこのスイッチを使用する必要がある場合
アーキテクチャ情報は含まれていませんが、
使用するすべての指示を逆アセンブルします -マーム.

-M オプション
-逆アセンブラ-オプション=オプション
ターゲット固有の情報を逆アセンブラーに渡します。 それだけ
一部のターゲットでサポートされています。 以上を指定する必要がある場合
XNUMX つの逆アセンブラ オプションと複数のオプション -M オプションを使用するか、
コンマ区切りのリストにまとめることができます。

ターゲットが ARM アーキテクチャの場合、このスイッチを使用できます
逆アセンブラ中にどのレジスタ名セットを使用するかを選択します。
指定 -M 登録名-std (デフォルト) はレジスタを選択します
ARM の命令セットのドキュメントで使用されている名前ですが、
レジスタ 13 は 'sp' と呼ばれ、レジスタ 14 は 'lr' と呼ばれ、レジスタ 15 は
「パソコン」と呼ばれます。 指定する -M reg-names-apcs 名前セットを選択します
ARM プロシージャ コール標準で使用されます。 -M 登録する
名前-生 使用するだけです r 続いて登録番号。

APCS レジスタの命名方式には XNUMX つのバリエーションがあります。
有効にする -M reg-names-atpcs および -M reg-names-special-atpcs which
ARM/Thumb プロシージャ コール標準の命名規則を使用します。
(通常のレジスター名または特殊レジスター名のいずれか
名前)。

このオプションは、ARM アーキテクチャで強制的に使用することもできます。
すべての命令を Thumb 命令として解釈する逆アセンブラ
スイッチを使う --disassembler-options = force-thumb。 これは
他のによって生成されたサムコードを逆アセンブルしようとするときに役立ちます
コンパイラ。

x86の場合、一部のオプションは、 -m
切り替えますが、よりきめ細かい制御が可能です。 から複数選択
以下はカンマ区切りの文字列として指定できます。

「x86-64」
「i386」
「i8086」
指定されたアーキテクチャの分解を選択します。

「インテル」
「att」
Intel構文モードとAT&T構文モードのどちらかを選択します。

「amd64」
「intel64」
AMD64ISAとIntel64ISAのどちらかを選択します。

「インテルニーモニック」
「att-ニーモニック」
intel ニーモニック モードと AT&T ニーモニック モードを選択します。
注: 「intel-mnemonic」は、「intel」および「att-mnemonic」を意味します。
「att」を意味します。

「addr64」
「addr32」
「addr16」
「data32」
「data16」
デフォルトのアドレス サイズとオペランド サイズを指定します。 このXNUMXつ
「x86-64」、「i386」または「i8086」の場合、オプションは上書きされます
オプション文字列の後半に表示されます。

"サフィックス"
AT&T モードの場合、逆アセンブラーに出力するように指示します。
接尾辞が
オペランド。

PowerPCの場合、 ブッケ BookE命令の逆アセンブルを制御します。
32 および 64 PowerPC と PowerPC64 の逆アセンブリをそれぞれ選択します。
e300 e300 ファミリの逆アセンブリを選択します。 440 選択する
PowerPC 440 の分解。 ppcps の分解を選択します
PPC750CL のペアの単一命令。

MIPS の場合、このオプションは命令ニーモニックの出力を制御します。
逆アセンブル命令の名前とレジスタ名。 多数
以下から選択して、カンマ区切りで指定できます
文字列であり、無効なオプションは無視されます。

「エイリアスなし」
疑似命令の代わりに「生の」命令ニーモニックを出力します
命令ニーモニック。 つまり、代わりに 'daddu' または 'or' を出力します。
「nop」の代わりに「move」、「sll」など。

「msa」
MSA命令を分解します。

「virt」
仮想化ASE命令を逆アセンブルします。

「xpa」
拡張物理アドレス (XPA) ASE の逆アセンブル
指示に従ってください。

"gpr-names =ABI」
必要に応じて GPR (汎用レジスター) 名を出力します。
指定された ABI。 デフォルトでは、GPR 名が選択されています
逆アセンブルされるバイナリの ABI に従って。

"fpr-names =ABI」
適切な FPR (浮動小数点レジスタ) 名を出力します。
指定された ABI。 デフォルトでは、FPR 番号はむしろ印刷されます。
名前より。

"cp0-names =アーチ"
CP0 (システム制御コプロセッサ; コプロセッサ 0) レジスタの印刷
によって指定された CPU またはアーキテクチャに適した名前
アーチ. デフォルトでは、CP0 レジスタ名は次のように選択されます。
逆アセンブルされるバイナリのアーキテクチャと CPU。

"hwr-names =アーチ"
Print HWR (ハードウェアレジスタ、「rdhwr」命令で使用)
によって指定された CPU またはアーキテクチャに適した名前
アーチ. デフォルトでは、HWR 名は
逆アセンブルされるバイナリのアーキテクチャと CPU。

"reg-names =ABI」
選択したABIに応じて、GPR名とFPR名を印刷します。

"reg-names =アーチ"
CPU 固有のレジスタ名 (CP0 レジスタおよび HWR 名) を出力します。
選択した CPU またはアーキテクチャに応じて。

上記のオプションのいずれかについて、 ABI or アーチ 指定される場合があります
as 数値の 名前ではなく番号を印刷するため、
レジスタの選択されたタイプ。 利用可能な値を一覧表示できます
ABI および アーチ - 助けて オプションを選択します。

VAXの場合、関数エントリアドレスを次のように指定できます。 -M
エントリ:0xf00ba. これを複数回使用して、適切に
シンボル テーブルを含まない VAX バイナリ ファイルを逆アセンブルします (
ROM ダンプ)。 これらの場合、関数エントリ マスクは
それ以外の場合は、VAX 命令としてデコードされます。
関数の残りの部分が間違って逆アセンブルされています。

-p
-プライベートヘッダー
オブジェクト ファイル形式に固有の情報を出力します。 の
出力される正確な情報は、オブジェクト ファイルの形式によって異なります。 為に
一部のオブジェクト ファイル形式では、追加情報は出力されません。

-P オプション
-プライベート=オプション
オブジェクト ファイル形式に固有の情報を出力します。 の
引数 オプション に依存するカンマ区切りのリストです。
形式 (オプションのリストはヘルプで表示されます)。

XCOFFの場合、使用可能なオプションは次のとおりです。

"ヘッダ"
「aout」
「セクション」
「syms」
「再配置」
「リネノ」
"ローダ"
"それ外"
「typchk」
「トレースバック」
「toc」
「ldinfo」

すべてのオブジェクト形式がこのオプションをサポートしているわけではありません。 特にエルフ
フォーマットはそれを使用しません。

-r
--再配置
ファイルの再配置エントリを印刷します。 一緒に使用する場合 -d or -D,
再配置は、分解に散在して印刷されます。

-R
-動的-再配置
ファイルの動的再配置エントリを出力します。 これだけです
特定の種類の共有オブジェクトなど、動的オブジェクトにとって意味があります。
ライブラリ。 はどうかと言うと -r、と一緒に使用する場合 -d or -D、移転は
分解が散在して印刷されています。

-s
-フルコンテンツ
要求されたセクションの完全な内容を表示します。 デフォルトでは
空でないすべてのセクションが表示されます。

-S
- ソース
可能であれば、逆アセンブルが混在するソース コードを表示します。
示す -d.

--prefix =接頭辞
指定 接頭辞 で使用したときに絶対パスに追加する -S.

--prefix-strip =レベル
削除する初期ディレクトリ名の数を指定します
ハードワイヤードの絶対パス。 ないと効果がない --prefix =接頭辞.

--show-raw-insn
命令を逆アセンブルするときは、命令を XNUMX 進数で次のように印刷します。
象徴的な形でも。 以下の場合を除き、これがデフォルトです。
--プレフィックス-アドレス 使用されている。

--no-show-raw-insn
説明書を分解するときは、説明書を印刷しないでください
バイト。 これはデフォルトです。 --プレフィックス-アドレス 使用されている。

--insn-width =
ディスプレイ 逆アセンブル時の単一行のバイト数
指示に従ってください。

-W [lLiaprmfFsoRt]
--dwarf [= rawline、= decodeline、= info、= abbrev、= pubnames]
--dwarf [= arounds、= macro、= frames、= frames-interp、= str、= loc]
--dwarf [= Ranges、= pubtypes、= trace_info、= trace_abbrev]
--dwarf [= trace_aranges、= gdb_index]
ファイル内のデバッグ セクションの内容を表示します (存在する場合)。
現在。 オプションの文字または単語のいずれかが続く場合
切り替えると、それらの特定のセクションで見つかったデータのみが表示されます
ダンプされました。

コンテンツを表示するための単一文字オプションがないことに注意してください
トレース セクションまたは .gdb_index の。

注:からの出力 = info オプションは、
オプション -矮星-深さ -矮星-スタート--dwarf-チェック.

--dwarf-depth =n
「.debug_info」セクションのダンプをに制限します n 子供たち。 これは
でのみ有用 --dwarf = info. デフォルトでは、すべての DIE が出力されます。
の特別な値 0 n もこの効果になります。

のゼロ以外の値 n、DIEまたはそれより深い n レベルは
印刷されません。 の範囲 n ゼロベースです。

--dwarf-start =n
番号が付けられたDIEで始まるDIEのみを印刷します n. これだけです
で便利 --dwarf = info.

指定されている場合、このオプションはヘッダーの出力を抑制します
番号付けされた DIE の前の情報とすべての DIE n. 兄弟のみ
指定された DIE の子が出力されます。

これは、と組み合わせて使用​​できます -矮星-深さ.

--dwarf-チェック
ドワーフ情報の整合性に関する追加のチェックを有効にします。

-G
-スタブ
要求されたセクションの完全な内容を表示します。 表示する
からの .stab および .stab.index および .stab.excl セクションの内容
ELF ファイル。 これは、システム (Solaris 2.0 など) でのみ有効です。
「.stab」デバッグ シンボル テーブル エントリは、
ELFセクション。 他のほとんどのファイル形式では、シンボル テーブルのデバッグ
エントリはリンケージ シンボルでインターリーブされ、
  --shms 出力。

--start-address =住所
指定したアドレスからデータの表示を開始します。 これは
の出力 -d, -r および -s オプション。

--stop-address =住所
指定したアドレスでデータの表示を停止します。 これは
の出力 -d, -r および -s オプション。

-t
--shms
ファイルのシンボル テーブル エントリを出力します。 これは
によって提供される情報 nm プログラム、表示形式
異なります。 出力の形式は、
ダンプされるファイルですが、主に XNUMX つのタイプがあります。 見える
このような:

[4](sec 3)(fl 0x00)(ty 0)(scl 3)(nx 1)0x00000000 .bss
[6](sec 1)(fl 0x00)(ty 0)(scl 2)(nx 0)0x00000000 fred

ここで、角括弧内の数字は
シンボル テーブルのエントリ、 ドライ number はセクション番号です。
  fl 値は、シンボルのフラグ ビットです。 ty 番号は
シンボルのタイプ、 scl number はシンボルのストレージ クラスであり、
nx 値は、関連する補助エントリの数です。
シンボル。 最後の XNUMX つのフィールドは、シンボルの値とその名前です。

通常、ELF ベースのファイルで見られる他の一般的な出力形式は、
次のようになります。

00000000 ld .bss 00000000 .bss
00000000 g .text 00000000 フレッド

ここで、最初の数値はシンボルの値です (時々参照される
そのアドレスとして)。 次のフィールドは実際には一連の文字です
およびシンボルに設定されているフラグ ビットを示すスペース。
これらの文字については、以下で説明します。 次は
シンボルが関連付けられているか、または * ABS * セクションが絶対的な場合
(つまり、どのセクションにも接続されていない)、または * UND * セクションが
ダンプされるファイルで参照されていますが、そこでは定義されていません。

セクション名の後に別のフィールド、数値が続きます。
一般的な記号は位置合わせで、その他の記号はサイズです。
最後にシンボルの名前が表示されます。

旗のキャラクターは次のように7つのグループに分けられます。

「l」
"NS"
「u」
「!」 シンボルは、ローカル (l)、グローバル (g)、ユニーク グローバル (u)、
グローバルでもローカルでもない (スペース)、またはグローバルとローカルの両方
(!)。 シンボルは、さまざまな種類のローカルまたはグローバルのいずれにもなりません。
理由、たとえば、デバッグに使用されるためですが、
ローカルと両方の場合は、おそらくバグの兆候です
グローバル。 一意のグローバル シンボルは、
ELF シンボル バインディングの標準セット。 そのようなシンボルの場合、
動的リンカーは、プロセス全体でそこにあることを確認します
この名前とタイプが使用されているシンボルは XNUMX つだけです。

「w」記号が弱い(w)または強い(スペース)。

"C" シンボルは、コンストラクター (C) または通常のシンボル (a
スペース)。

"W" 記号は、警告 (W) または通常の記号 (スペース) です。 あ
警告記号の名前は、次の場合に表示されるメッセージです。
警告シンボルに続くシンボルは常に参照されます。

"私"
"i" 記号は、別の記号 (I) への間接的な参照です。
再配置処理中に評価される関数 (i) または
通常の記号(スペース)。

「d」
"D" シンボルはデバッグ シンボル (d) または動的シンボル (D) または
通常の記号 (スペース)。

"F"の
"NS"
"O" 記号は、関数 (F) またはファイル (f) またはファイルの名前です。
オブジェクト (O) または単なる通常の記号 (スペース)。

-T
--dynamic-syms
ファイルのダイナミック シンボル テーブル エントリを出力します。 これだけです
特定の種類の共有オブジェクトなど、動的オブジェクトにとって意味があります。
ライブラリ。 これは、 nm
与えられたときのプログラム -D (- 動的)オプション。

--特別なシムズ
シンボルを表示する場合、ターゲットが考えるものを含む
何らかの意味で特別であり、通常は関心を持たないもの
ユーザに提供する。

-V
- バージョン
のバージョン番号を印刷します オブジェクトダンプ 終了します。

-x
-すべてのヘッダー
シンボルを含む、利用可能なすべてのヘッダー情報を表示します
テーブルと再配置エントリ。 使用する -x 指定するのと同じです
すべての -a -f -h -p -r -t.

-w
- 幅
80 を超える出力デバイス用に一部の行をフォーマットします。
列。 また、シンボル名が次の場合は切り捨てません。
表示されます。

-z
-分解-ゼロ
通常、逆アセンブリ出力はゼロのブロックをスキップします。 これ
オプションは、逆アセンブラにこれらのブロックを逆アセンブルするように指示します。
他のデータと同様です。

@file
からコマンドラインオプションを読み取る file。 読み取ったオプションが挿入されます
元の@の代わりにfile オプション。 場合 file 存在しない、または
読み取ることができない場合、オプションは文字通りに扱われ、
除去された。

オプションで file 空白で区切られます。 空白
全体を囲むことにより、オプションに文字を含めることができます
一重引用符または二重引用符で囲むオプション。 任意の文字(含む
バックスラッシュ)は、文字の前に付けることで含めることができます
バックスラッシュが含まれています。 NS file それ自体が追加で含まれている可能性があります
@file オプション; このようなオプションはすべて再帰的に処理されます。

onworks.net サービスを使用してオンラインで i686-linux-gnu-objdump を使用する



最新のLinuxおよびWindowsオンラインプログラム