質問

私は知っています otool -tv, 、しかし、私はむしろ使用したいです インテル AT&TSではなく構文、主に本を簡単にフォローし、何千ものものを見る必要はありません %'砂 $'s。

また、私が見つけるかもしれない場所へのヒントも感謝しています gdb'の構成ファイル。

編集:私は忘れていました:私は64ビットプロセッサを実行していますが、32ビットアセンブリに分解することも可能かどうか疑問に思っていましたか?それだけでなく、OSXはします gdb's list コマンドは標準とは異なる方法で動作します GNU バージョン?

本当にありがとう!

(また、C-> MIPSから少し分解者を見つける可能性がある場合、それは一緒に遊ぶのがとても楽しいでしょう。しかし、必要ではありません!)

役に立ちましたか?

解決

2番目の質問に答えるために、コードが64ビットと32ビットの両方で脂肪バイナリにコンパイルされている場合、使用できます otool -arch i386 -tv バイナリの32ビットスライスを分解する。 otool -arch x86_64 -tv 64ビットの部分を与えます(Snowleopardでは、これもデフォルトの動作です。 -arch フラグが渡されます)。

また、OtoolはIntel構文をサポートしていませんが、GDB(set disassembly-flavor intel)およびxcode(設定 - >デバッグ - >分解スタイル)は行います。

他のヒント

(これは古い質問であることは知っていますが、検索エンジンを通じてここに来る人々に更新された答えを提供したいと思います)。

MacOSの最近のバージョン(私は10.14.5を実行しています)で、 objdump コマンドが利用可能です。これはLLVMに基づいており、 いいえ GNUプロジェクトからのもの。 Intel構文を使用して分解する(非表示の)オプションを提供します。例えば、 /bin/echo 次のように分解することができます:

objdump -disassemble -x86-asm-syntax=intel /bin/echo

objdump あなたは分解することができます -d -M intel, 、そしてどうやら -m アーキテクチャを指定するために使用できます。

gdbの場合、.gdbinitファイルで、追加してください。

分解flavor intelを設定します

その後、GDBのデフォルトの構文になります。

A2iを使用して、AT&TからIntel構文に翻訳できます。 http://membres.lycos.fr/placr/a2i.html

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top