gdb 在特定线程中禁用断点
gdb disable breakpoint in particular thread
是否可以在每个线程的基础上禁用 gdb 断点?
我有一个断点,它在后台工作线程中每 100 毫秒触发一次。但是我需要在任何其他线程中调试相同的位置。所以只在后台工作线程中禁用断点会很酷。可能吗?
也许我可以在知道线程号的情况下通过向该断点添加一些特制条件来禁用线程?
Gdb 提供了两个方便的变量,$_thread
和 $_gthread
(后者相当新),可以在条件中使用它们来引用当前线程。
因此,工作线程启动后,您可以使用 info thread
找到它的编号。然后你可以改变你的断点(假设这个例子是断点 2)像:
(gdb) cond 2 $_thread != 57
是否可以在每个线程的基础上禁用 gdb 断点?
我有一个断点,它在后台工作线程中每 100 毫秒触发一次。但是我需要在任何其他线程中调试相同的位置。所以只在后台工作线程中禁用断点会很酷。可能吗?
也许我可以在知道线程号的情况下通过向该断点添加一些特制条件来禁用线程?
Gdb 提供了两个方便的变量,$_thread
和 $_gthread
(后者相当新),可以在条件中使用它们来引用当前线程。
因此,工作线程启动后,您可以使用 info thread
找到它的编号。然后你可以改变你的断点(假设这个例子是断点 2)像:
(gdb) cond 2 $_thread != 57