2013-03-21 85 views
8

我需要检查一个变量以确定它是否正确设置,这可能发生在多个循环之后。gdb可以在每次中断时打印特定变量吗?

我现在正在做的是一样的东西如下:

(gdb) b myfile.cpp:180 
(gdb) c 
(gdb) p decoder.m_msg 
(gdb) c 
(gdb) p decoder.m_msg 
(gdb) c 
... 

我能有这个变量decoder.m_msg自动打印每次程序中断?

回答

10

是的,breakpoint command lists

$ break myfile.cpp:180 
Breakpoint 1 at 0x46ba0e: file myfile.cpp, line 180. 

$ commands 1 
> print decoder.m_msg 
> end 
$ 
+0

不错!我对此并不熟悉! 'display'可能并不总是有效,因为一个变量可能超出范围,但是一个命令列表解决了这个问题。 – 2013-03-21 12:02:34

17

使用display命令:

(gdb> display decoder.m_msg 

这将导致decoder.m_msg要打印该提示显示(不仅断点之后)每一次。

相关问题