【发布时间】:2013-04-05 19:59:22
【问题描述】:
LLDB 每次都在当前行周围打印上下文,如下所示:
int a = 12;
int b = a * 13;
-> printf("%d\n", b);
return 0;
}
同时,GDB 只打印当前行:
-> printf("%d\n", b);
我可以像 LLDB 一样让 GDB 在每一步都打印上下文吗?谷歌搜索给出所有列表命令。
【问题讨论】:
标签: gdb
LLDB 每次都在当前行周围打印上下文,如下所示:
int a = 12;
int b = a * 13;
-> printf("%d\n", b);
return 0;
}
同时,GDB 只打印当前行:
-> printf("%d\n", b);
我可以像 LLDB 一样让 GDB 在每一步都打印上下文吗?谷歌搜索给出所有列表命令。
【问题讨论】:
标签: gdb
实现此目的的一种方法可能是定义一个重新定义关键字的宏,例如“s”或“n”。 例如,如果您想在每一步打印出堆栈指针的值,您可以通过将这些行输入 (gbd) 控制台来重新定义“s”:
def s
step
info registers sp
end
现在每次使用命令“s”时,实际上都会执行一步并打印 sp 寄存器
【讨论】:
没有内置的方法可以做到这一点。
你可以让它工作,有点,使用 hookpost-stop 来调用显式列表命令。
不过,我认为大多数人只是使用众多 gdb GUI 之一。
【讨论】: