2016-06-22 38 views
3

是否可以在每个线程的基础上禁用gdb断点?gdb禁用特定线程的断点

我有一个断点,它会在后台工作线程中每100毫秒触发一次。但我需要在任何其他线程中调试相同的位置。因此,仅在后台工作线程中禁用断点才会很酷。可能吗?

也许我可以加入一些特制的条件,这个断点禁用线程,当我知道线程的数量?

回答

3

Gdb提供了两个便利变量,$_thread$_gthread(后者相当新颖),可用于引用当前线程的条件。

所以,一旦工作者线程已经开始,你可以使用info thread找到它的编号。然后你可以改变你的断点(假设这个例子是断点2),例如:

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

谢谢。这是我正在寻找的。 –