禁用特定线程中的gdb断点

6

有没有可能按线程禁用gdb断点?

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

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

1个回答

6

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

因此,一旦工作线程启动,您可以使用info thread查找其编号。 然后,您可以更改断点(假设在此示例中为断点2),如下所示:

(gdb) cond 2 $_thread != 57

谢谢你。这就是我在寻找的东西。 - igor.sol
我也是,但我找到了一个例子,它并不像我解释的那样工作:https://stackoverflow.com/questions/76584590/how-to-make-gdb-stop-trapping-on-breakpoints-in-other-threads-under-set-schedule - bgoodr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接