2012-02-04 10 views
6

私はcgdbがバイナリを逆アセンブルしてコードウィンドウに現在の命令でアセンブリコードを表示する方法を見つけることができません。これは可能なのですか、どのコマンドを使用しますか?私はMac OS Xを使い、自作のリポジトリからcgdbを入手しました。cgdb show assembly codeを作るには?

答えて

4

display/i $pcは、常に現在の命令の逆アセンブリをコンソールウィンドウに示します。

詳細については逆アセンブリを表示するには、iの前に接頭辞を付けてください。例えば

display/5i $pc 

次の5手順については、常に分解を示します。

+1

この種類は、cgdbの目的に反するものです。この機能がgdbコマンドでのみ達成された場合、無人アプリケーションをデバッグするためにプレーンgdbではなく、なぜこれを使用するのですか? – Ruslan

+0

これは ':set dis'(バージョン0.7.0以降)でこれを行う方法があります。私の答えを見てください。 –

0

私はMacOSでバイナリボンブを解体し、"gdb -tui"が役に立ちます。私が見つけたより"cgdb"はカラフルなコードを作ることができます。しかし、私たちが見たいのは、コードウィンドウ上で逆アセンブルされたコードを表示することです。上記の答えは、コードを行単位で表示するか、または変更のない行のみを表示します。

残念ながら、私はポストは、 "cgdbはまだアセンブリの表示をサポートしていないと述べた。 https://groups.google.com/forum/#!topic/cgdb-users/E-jZCJiBAQQ

Sorry guys, cgdb does not support assembly display (yet). It's a 
frequently requested feature, and when we get a little more time to 
work on cgdb we will probably add this. 
Starting cgdb with the -tui option is a bad idea -- the TUI (text user 
interface) is an alternative curses interface to gdb, not a part of 
cgdb. It will not play nice with cgdb. 
Mike 
-- 
Mike Mueller 

まあ、それは12/11/15ですが、まだTUIモードではgdbのようなコードウィンドウ上のアセンブリコードを表示することができませんでしたようです。

2

最近の更新(2017年2月)からcgdbへの更新が可能になりました。 cgdbバージョン0.7.0以上が必要です。 (これは最新のリリースです)。どのくらい最近のものかを考えれば、ソースからコンパイルする必要があるかもしれません。解体のサポートを追加する

詳細はここで見つけることができます: https://github.com/cgdb/cgdb/issues/44

cgdbに解体を表示するにはESCを打つと種類:set disを入力してください。

ソース(利用可能な場合)に戻るには、これを繰り返します。ただし、タイプ:set nodisを除きます。

関連する問題