每次都要制作GDB打印上下文

时间:2013-04-05 19:59:23

标签: gdb

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

     int a = 12;
     int b = a * 13;
->   printf("%d\n", b);
     return 0;
   }

同时,GDB只打印一条当前行:

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

我可以像LLDB一样制作GDB打印上下文吗?谷歌搜索提供所有周围列表命令。

2 个答案:

答案 0 :(得分:3)

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

def s
step
info registers sp
end

现在每次使用命令's'时,实际上都会执行步骤并打印sp寄存器

答案 1 :(得分:1)

没有内置方法可以做到这一点。

您可以使用hookpost-stop来调用显式列表命令,使其工作。

我认为大多数人只是使用众多gdb GUI之一。