我正在GDB中进行一些汇编级调试.有没有办法让GDB以与显示当前源代码行相同的方式向我显示当前的汇编指令?每个命令后的默认输出如下所示:
0x0001433f 990 Foo::bar(p);
Run Code Online (Sandbox Code Playgroud)
这给了我当前指令的地址,但是我必须继续参考输出,disassemble
以便查看我当前正在执行哪条指令.
可能重复:
切换到gdb中的程序集
我正在调试gdb中的一些代码.当我运行ni
(for next instruction)命令时,它显示C代码.显示执行的汇编指令对我来说更有意义.
(gdb) ni
0x0804845a 28 tmp = *lpp;
(gdb) ni
0x0804845c 28 tmp = *lpp;
(gdb) ni
0x0804846a 29 **lpp = (unsigned long) &buf;
(gdb) ni
0x0804846c 29 **lpp = (unsigned long) &buf;
Run Code Online (Sandbox Code Playgroud)
有没有办法让gdb显示汇编代码,而不是disassm
每次都调用?
编辑:我知道layout asm
在readline窗口中显示代码的命令.我想在gdb命令行上看到反汇编,而不是在gdb窗口中.
我有一个while
如下循环。
while (*d++ = *sc++)
Run Code Online (Sandbox Code Playgroud)
因为我希望深入了解指针,所以我想进入循环while
并了解while
循环如何使用指针。
我用过step
,gdb
但它没有while
完全进入循环。有没有办法进入循环并理解每while
一步的操作。