切换到 gdb 中的汇编

问题描述 投票:0回答:5

在gdb中调试C或C++程序时有没有办法切换到汇编? (假设所有源文件及其相应的汇编文件都可用)

assembly gdb
5个回答
72
投票

你可以在gdb中切换到asm布局:

(gdb) layout asm

请参阅在线文档了解更多信息。


25
投票

有一种方法可以反汇编一个函数或某段代码,这就是你想要的吗?

执行此操作的命令是

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.

11
投票

在新的 gdb 版本 7.0 中,

disassemble
命令可以采用新参数
/m
,这使其发出混合源代码和反汇编代码。


4
投票

使用 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.

1
投票

这个问题也在 cgdb 的 googlegroup 中被问到 https://groups.google.com/forum/?hl=de&fromgroups=#!topic/cgdb-users/E-jZCJiBAQQ

还没有关于为什么布局汇编不起作用的答案

编辑:他们最近发布并表示该功能尚未实现。 (查看上面的链接)

© www.soinside.com 2019 - 2024. All rights reserved.