LLDB每次都在当前行周围打印上下文,如下所示:
int a = 12;
int b = a * 13;
-> printf("%d\n", b);
return 0;
}
同时,GDB只打印一条当前行:
-> printf("%d\n", b);
我可以像LLDB一样制作GDB打印上下文吗?谷歌搜索提供所有周围列表命令。
答案 0 :(得分:3)
实现这一目标的方法可能是定义一个重新定义关键字的宏,例如's'或'n'。 例如,如果你想在每一步打印出堆栈指针的值,你可以通过在(gbd)控制台中输入这些行来重新定义's':
def s
step
info registers sp
end
现在每次使用命令's'时,实际上都会执行步骤并打印sp寄存器
答案 1 :(得分:1)
没有内置方法可以做到这一点。
您可以使用hookpost-stop来调用显式列表命令,使其工作。
我认为大多数人只是使用众多gdb GUI之一。