有没有可能按线程禁用gdb断点?
我的一个断点会在后台工作线程中每100毫秒触发一次。但我需要在其他任何线程中调试相同的位置。因此,只在后台工作线程中禁用断点会很酷。这可能吗?
也许我可以通过当我知道线程号时,向这个断点添加一些特殊制作的条件来禁用线程?
有没有可能按线程禁用gdb断点?
我的一个断点会在后台工作线程中每100毫秒触发一次。但我需要在其他任何线程中调试相同的位置。因此,只在后台工作线程中禁用断点会很酷。这可能吗?
也许我可以通过当我知道线程号时,向这个断点添加一些特殊制作的条件来禁用线程?
Gdb提供了两个方便的变量$_thread
和$_gthread
(后者是相对较新的),可用于条件中引用当前线程。
因此,一旦工作线程启动,您可以使用info thread
查找其编号。 然后,您可以更改断点(假设在此示例中为断点2),如下所示:
(gdb) cond 2 $_thread != 57