英語フランス語スペイン語

Ad


OnWorksファビコン

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

Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、またはMACOSオンラインエミュレーターを介してOnWorks無料ホスティングプロバイダーでaarch64-linux-gnu-objdumpを実行します

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

プログラム:

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)Oasysによって生成された形式のVAXオブジェクトファイルとして
コンパイラ。 で利用可能な形式を一覧表示できます -i オプションを選択します。

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

-g
-デバッグ
デバッグ情報を表示します。 これは、STABSおよびIEEEデバッグ形式を解析しようとします
ファイルに保存されている情報を、Cのような構文を使用して印刷します。 どちらも
これらのフォーマットは、このオプションが -W DWARFを印刷するオプション
ファイル内の情報。

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

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

-D
-分解-すべて
いいね -d、ただし、期待されるセクションだけでなく、すべてのセクションのコンテンツを逆アセンブルします。
指示が含まれています。

このオプションは、コード内の命令の逆アセンブルにも微妙な影響を及ぼします
セクション。 オプションの場合 -d objdumpは、に存在するすべてのシンボルを想定します。
コードセクションは命令間の境界で発生し、それは拒否します
そのような境界を越えて分解します。 オプションの場合 -D 有効ですが、これ
仮定は抑制されます。 これは、の出力が可能であることを意味します -d & -D
たとえば、データがコードセクションに格納されている場合は異なります。

ターゲットがARMアーキテクチャの場合、このスイッチには強制的に
コードセクションで見つかったデータの断片をあたかもそうであるかのようにデコードする逆アセンブラ
指示に従ってください。

--プレフィックス-アドレス
分解するときは、各行に完全な住所を印刷してください。 これは古いです
分解フォーマット。

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

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

-F
-ファイル-オフセット
セクションを分解するとき、シンボルが表示されるときはいつでも、ファイルも表示します
ダンプされようとしているデータの領域のオフセット。 ゼロがスキップされている場合、
次に、分解が再開されたら、スキップされたゼロの数とファイルをユーザーに通知します
分解が再開される場所のオフセット。 セクションをダンプするとき、
ダンプが開始される場所のファイルオフセットを表示します。

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

-h
-セクションヘッダー
-ヘッダー
オブジェクトファイルのセクションヘッダーからの要約情報を表示します。

ファイルセグメントは、たとえば、
-Ttext, -Tdataまたは -TBS オプション ld。 ただし、次のような一部のオブジェクトファイル形式
a.out、ファイルセグメントの開始アドレスを保存しないでください。 そのような状況では、
しかし ld を使用して、セクションを正しく再配置します オブジェクトダンプ -h ファイルを一覧表示するには
セクションヘッダーに正しいアドレスを表示できません。 代わりに、それは通常を示しています
ターゲットに対して暗黙的なアドレス。

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

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

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

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

-m 機械
-アーキテクチャ=機械
オブジェクトファイルを逆アセンブルするときに使用するアーキテクチャを指定します。 これは便利です
アーキテクチャ情報などを記述していないオブジェクトファイルを逆アセンブルする場合
Sレコードとして。 利用可能なアーキテクチャを一覧表示できます。 -i オプションを選択します。

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

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

ターゲットがARMアーキテクチャの場合、このスイッチを使用して、
レジスタ名セットは、逆アセンブラ時に使用されます。 指定する -M 登録名-std
デフォルト)ARMの命令セットで使用されるレジスタ名を選択します
ドキュメントですが、レジスター13は「sp」と呼ばれ、レジスター14は「lr」と呼ばれ、レジスター
15は「pc」と呼ばれます。 指定する -M reg-names-apcs ARMで使用される名前セットを選択します
手順指定しながら標準を呼び出す -M 登録名-raw 使用するだけです r 続いて
レジスター番号による。

APCSレジスタの命名スキームにはXNUMXつのバリエーションがあります。 -M 登録する
名前-atpcs & -M reg-names-special-atpcs 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」を意味し、「att-mnemonic」は「att」を意味します。

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

"サフィックス"
AT&Tモードの場合、逆アセンブラに、次の場合でもニーモニック接尾辞を出力するように指示します。
接尾辞は、オペランドによって推測できます。

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

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

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

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

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

「xpa」
eXtended Physical Address(XPA)ASE命令を逆アセンブルします。

"gpr-names =ABI」
指定されたABIに応じてGPR(汎用レジスター)名を印刷します。
デフォルトでは、GPR名はバイナリのABIに従って選択されます。
分解しました。

"fpr-names =ABI」
指定されたABIに応じて、FPR(浮動小数点レジスター)名を出力します。
デフォルトでは、名前ではなくFPR番号が出力されます。

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

"hwr-names =アーチ"
HWR(ハードウェアレジスタ、「rdhwr」命令で使用される)名を次のように出力します。
によって指定されたCPUまたはアーキテクチャに適しています アーチ。 デフォルトでは、HWR名
バイナリのアーキテクチャとCPUに応じて選択されます
分解しました。

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

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

上記のオプションのいずれかについて、 ABI or アーチ 次のように指定できます 数値の 持つ
選択したタイプのレジスタについて、名前ではなく数字が出力されます。 あなたはリストすることができます
の利用可能な値 ABI & アーチ - 助けて オプションを選択します。

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

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

-P オプション
-プライベート=オプション
オブジェクトファイル形式に固有の情報を印刷します。 議論 オプション is
形式に応じたコンマ区切りのリスト(オプションのリストが表示されます)
助けを借りて)。

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

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

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

-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 =
ディスプレイ 命令を逆アセンブルするときのXNUMX行のバイト。

-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]
ファイル内のデバッグセクションの内容が存在する場合は、それを表示します。 XNUMXつなら
オプションの文字または単語のスイッチに続いて、それらで見つかったデータのみ
特定のセクションがダンプされます。

トレースセクションの内容を表示するためのXNUMX文字のオプションがないことに注意してください。
.gdb_index。

注:からの出力 = info オプションもオプションの影響を受ける可能性があります
-矮星-深さ -矮星-スタート--dwarf-チェック.

--dwarf-depth =n
「.debug_info」セクションのダンプをに制限します n 子供達。 これは次の場合にのみ役立ちます
--dwarf = info。 デフォルトでは、すべてのDIEが印刷されます。 の特別な値0 n 意志も
この効果があります。

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

--dwarf-start =n
番号が付けられたDIEで始まるDIEのみを印刷します n。 これは次の場合にのみ役立ちます
--dwarf = info.

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

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

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

-G
-スタブ
要求されたセクションの全内容を表示します。 の内容を表示する
ELFファイルの.stabセクションと.stab.indexセクションおよび.stab.exclセクション。 これは便利なだけです
「.stab」デバッグシンボルテーブルエントリが存在するシステム(Solaris 2.0など)
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

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

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

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

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

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

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

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

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

「C」記号は、コンストラクター(C)または通常の記号(スペース)を示します。

「W」記号は警告(W)または通常の記号(スペース)です。 警告記号の名前
警告記号に続く記号が存在する場合に表示されるメッセージです。
参照。

"私"
「i」シンボルは、別のシンボル(I)への間接参照であり、
再配置処理(i)または通常のシンボル(スペース)中に評価されます。

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

"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 サービスを使用してオンラインで aarch64-linux-gnu-objdump を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad