在gdb
中,当它遇到断点时,我需要使用print
或print/x
函数逐个手动调查变量值。
是否有更简单的方法可以在遇到断点时列出所有选定变量的值,通常称为GUI调试器的“监视窗口”?
答案 0 :(得分:1)
可以在断点上执行命令。
来自docs:
break foo
commands
printf "x is %d\n",x
end
或者将命令添加到某个现有断点(在这种情况下为断点3):
commands 3
print x
print y
end
或者创建一个将打印添加到断点的命令:
define addwatch
commands $arg0
print x
print y
end
end
然后使用:
addwatch 3
或者创建一个设置断点并向其添加打印的命令。
脚本可以存储在.gdbinit
中,因此它们会自动加载。该语言是GDB语法或Python。
P.S。有些人通过在命令列表的末尾添加continue
来跟踪此操作:这样就打印了变量,但应用程序不会在断点处停止。