web-dev-qa-db-ja.com

gdbでのアセンブリへの切り替え

GdbでCまたはC++プログラムをデバッグするときにアセンブリに切り替える方法はありますか? (すべてのソースファイルとそれに対応するアセンブリファイルが利用可能であることを前提とします)

34
Ben

関数またはコードの特定のセクションを逆アセンブルする方法はありますか?

そのためのコマンドはdisassemble <function name>またはメモリの場所。

これはあなたが言っていることですか?

(gdb) help disassemble
Disassemble a specified section of memory.
Default is the function surrounding the pc of the selected frame.
With a single argument, the function surrounding that address is dumped.
Two arguments are taken as a range of memory to dump.
23
X-Istence

Gdbでasmレイアウトに切り替えることができます。

(gdb) layout asm

詳細は here を参照してください。

59
ks1322

新しいgdbバージョン7.0では、disassembleコマンドが新しい引数/mを受け取ることができるため、ソースと逆アセンブリの混合が発生します。

11
Michael Snyder

Disasコマンドを使用すると、おそらくあなたが望むことをするでしょう。

内部ヘルプによると、disasコマンドは次のことを行います。

Disassemble a specified section of memory.
Default is the function surrounding the pc of the selected frame.
With a single argument, the function surrounding that address is dumped.
Two arguments are taken as a range of memory to dump.
4
Paul Wicks

その質問はcgdbのgooglegroup https://groups.google.com/forum/?hl=de&fromgroups=#!topic/cgdb-users/E-jZCJiBAQQ でも行われました

なぜレイアウトASMが機能しないのかまだ答えはありません

編集:彼らは最近投稿し、その機能はまだ実装されていないことを伝えました。 (上のリンクを確認してください)

1
JohnRW