2013-03-21 20 views
8

Tôi cần phải kiểm tra một biến để tìm hiểu xem nó có được đặt đúng hay không, điều này có thể xảy ra sau vài vòng lặp.Gdb có thể in một biến cụ thể mỗi khi nó bị hỏng không?

Những gì tôi đang làm bây giờ là cái gì đó như sau:

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

Tôi có thể có này biến decoder.m_msg tự động in ra mỗi khi phá vỡ chương trình?

Trả lời

10

Vâng, với 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! Tôi không quen với điều này! 'display' có thể không phải lúc nào cũng hoạt động vì một biến có thể nằm ngoài phạm vi, nhưng một danh sách lệnh giải quyết điều đó. –

17

Sử dụng display lệnh:

(gdb> display decoder.m_msg 

Điều này sẽ gây decoder.m_msg được in mỗi khi nhắc được hiển thị (không chỉ sau một breakpoint).

Các vấn đề liên quan