gdb在特定线程中禁用断点

时间:2016-06-22 21:32:28

标签: gdb breakpoints conditional-breakpoint

是否可以基于每个线程禁用gdb断点?

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

当我知道线程的编号时,我可以通过在此断点中添加一些特制的条件来禁用线程吗?

1 个答案:

答案 0 :(得分:4)

Gdb提供了两个便利变量$_thread$_gthread(后者非常新),可以在条件中用于引用当前线程。

因此,一旦工作线程启动,您可以使用info thread查找其编号。然后你可以改变你的断点(假设这个例子是断点2),如:

(gdb) cond 2 $_thread != 57