使GDB每次都打印上下文

使GDB每次都打印上下文,gdb,Gdb,LLDB每次打印当前行周围的上下文,如下所示: int a = 12; int b = a * 13; -> printf("%d\n", b); return 0; } 同时,GDB只打印一行当前行: -> printf("%d\n", b); 我能像LLDB一样让GDB打印上下文吗?用谷歌搜索give all-around-list命令。没有内置的方法来实现这一点 您可以使用hookpost-stop调用显式list命令,让它工作起

LLDB每次打印当前行周围的上下文,如下所示:

     int a = 12;
     int b = a * 13;
->   printf("%d\n", b);
     return 0;
   }
同时,GDB只打印一行当前行:

->   printf("%d\n", b);

我能像LLDB一样让GDB打印上下文吗?用谷歌搜索give all-around-list命令。

没有内置的方法来实现这一点

您可以使用hookpost-stop调用显式list命令,让它工作起来


不过,我认为大多数人只是使用众多gdb GUI中的一个而已。

实现这一点的方法可能是定义一个宏来重新定义关键字,例如“s”或“n”。 例如,如果要在每个步骤打印堆栈指针的值,可以通过在(gbd)控制台中输入以下行来重新定义“s”:


现在,每次使用命令“s”时,实际上都要执行一个步骤并打印sp寄存器

您能给我一份这些良好GUI的列表吗?Emacs?DDD?Netbeans/eclipse?我偏爱Emacs,但这里有一个相当完整的列表:但不幸的是,没有。
def s
step
info registers sp
end