5

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

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

当我知道线程的编号时,也许我可以通过向这个断点添加一些特制的条件来禁用线程?

4

1 回答 1

5

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

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

(gdb) cond 2 $_thread != 57
于 2016-06-23T14:02:37.470 回答