2011-10-11 19 views
18

Ví dụ, tôi có một chức năng NamespaceA :: ClassB :: FunctionC() trong chương trình của tôi. Tôi biết tôi có thể yêu cầu GDB phá vỡ ở đó, bằng cách "phá vỡ NamespaceA :: ClassB :: FunctionC". Nhưng tôi nên làm gì nếu tôi chỉ muốn GDB phá vỡ ở đó, sau khi chức năng này được gọi là 100 lần?Làm thế nào để yêu cầu GDB phá vỡ chức năng chỉ sau khi nó được gọi là thời gian nhất định?

Tôi nghĩ giải pháp khắc phục là thêm một biến nữa trong chương trình, sau đó có lệnh "ngắt ... nếu cond" trong GDB tôi có thể sử dụng. Nhưng tôi có thể đạt được điều tương tự mà không cần thêm biến vào chương trình của tôi không?

Cảm ơn bạn.

+1

xem câu hỏi có liên quan dưới http://stackoverflow.com/questions/2956889/how-to-set-a-counter-for-a-gdb -breakpoint – Omar

+0

Bản sao có thể có của [Cách tạo điểm ngắt GDB chỉ phá vỡ sau khi đạt đến một số lần nhất định?] (https://stackoverflow.com/questions/2956889/how-to-make-a-gdb-breakpoint -only-break-after-the-point-is-đạt-a-given-numbe) –

Trả lời

21
(gdb) continue 100 

nên làm các trick

(gdb) help continue 
Continue program being debugged, after signal or breakpoint. 
If proceeding from breakpoint, a number N may be used as an argument, 
which means to set the ignore count of that breakpoint to N – 1 (so that 
the breakpoint won’t break until the Nth time it is reached). 
+13

Điều này giả định rằng bạn đã ở điểm ngắt nhất định. Bạn cũng có thể đặt số lượng bỏ qua trực tiếp với 'ignore ', trong đó 'n' là số điểm ngắt để bỏ qua' đếm' lần. – Cascabel

+1

@Jefromi IMHO nhận xét của bạn đáng để trở thành một câu trả lời khác. – Melebius

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