在Linux中调试时是否可以停止单个线程

Is it possible to stop a single thread during debug in Linux?

本文关键字:单个 线程 是否 Linux 调试      更新时间:2023-10-16

我想知道的是,在Linux的调试会话中,(读:gdb:))是否有可能停止单个线程的执行,让其他线程运行。

如果有人好奇为什么要继续阅读:我写了一个软件看门狗C++类(使用Qt)。我用一个简单的多线程程序测试了它,但我也想在将代码集成到实际应用程序中后对其进行测试。如果我可以停止调试器中的线程,这将简化这个测试阶段。:)

干杯Sergio

在运行或附加到程序之前使用以下命令序列:

  • 启用异步接口:
    设置目标异步1

  • 如果使用CLI,分页将不间断地中断:
    关闭分页

  • 打开它:
    在上设置为不间断

使用以下命令操作不间断模式设置:

  • 启用不间断模式选择:
    在上设置为不间断

  • 禁用不间断模式选择:
    设置不间断关闭

  • 显示当前不间断启用的设置:
    显示不间断

参考文献:
http://sourceware.org/gdb/onlinedocs/gdb/Non_002dStop-Mode.html#Non_002dStop-模式

您可以使用totalview调试器来执行

如果这个小的变化是可以的,你可以向线程发送一个STOP信号(而不是作为gdb命令gdb-那个变化),并调试其他正在运行的一切。信号CONT使线程继续。