2013-03-21 3 views
8

Ich muss eine Variable überprüfen, um herauszufinden, ob sie richtig eingestellt ist, was nach mehreren Schleifen passieren könnte.Kann gdb eine bestimmte Variable jedes Mal drucken, wenn es bricht?

Was ich tue, ist jetzt so etwas wie folgt:

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

Kann ich diese Variable decoder.m_msg jedem Programmpausen automatisch gedruckt?

Antwort

10

Ja, mit breakpoint command lists:

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

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

Nice! Ich kannte das nicht! 'display' funktioniert möglicherweise nicht immer, weil eine Variable nicht im Gültigkeitsbereich ist, aber eine Befehlsliste löst das Problem. –

17

Verwenden Sie den Befehl display:

(gdb> display decoder.m_msg 

Dadurch wird decoder.m_msg jedes Mal gedruckt werden, dass die Eingabeaufforderung (nicht erst nach einem Haltepunkt) dargestellt ist.

Verwandte Themen