2016-06-22 74 views
3

是否可以在每個線程的基礎上禁用gdb斷點?gdb禁用特定線程的斷點

我有一個斷點,它會在後臺工作線程中每100毫秒觸發一次。但我需要在任何其他線程中調試相同的位置。因此,僅在後臺工作線程中禁用斷點纔會很酷。可能嗎?

也許我可以加入一些特製的條件,這個斷點禁用線程,當我知道線程的數量?

回答

3

Gdb提供了兩個便利變量,$_thread$_gthread(後者相當新穎),可用於引用當前線程的條件。

所以,一旦工作者線程已經開始,你可以使用info thread找到它的編號。然後你可以改變你的斷點(假設這個例子是斷點2),例如:

(gdb) cond 2 $_thread != 57 
+0

謝謝。這是我正在尋找的。 –