assembly 在gdb中切换到程序集

7eumitmz  于 2023-10-19  发布在  其他
关注(0)|答案(5)|浏览(113)

在gdb中调试C或C++程序时,是否有任何方法可以切换到汇编?(假设所有源文件及其相应的程序集文件都可用)

7fyelxc5

7fyelxc51#

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

(gdb) layout asm

有关详细信息,请参阅在线文档。

emeijp43

emeijp432#

有一种方法可以反汇编一个函数或某段代码,这就是你想要的吗?
执行此操作的命令是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.
zvokhttg

zvokhttg3#

在新的gdb版本7.0中,disassemble命令可以接受一个新的参数/m,这使得它发出混合源代码和反汇编。

uidvcgyl

uidvcgyl4#

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

w51jfk4q5#

cgdb的googlegroup https://groups.google.com/forum/也提出了这个问题?hl=de&fromgroups=#!topic/cgdb-users/E-jZCJiBAQQ
没有答案,但为什么布局asm不工作
编辑:他们最近发帖说这是一个还没有实现的功能。(查看上面的链接)

相关问题