在Linux中调试期间是否可以停止单个线程?

时间:2012-02-02 10:11:20

标签: c++ qt gdb parallel-processing

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

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

干杯 塞尔吉奥

3 个答案:

答案 0 :(得分:3)

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

  • 启用异步接口:
    设置target-async 1

  • 如果使用CLI,分页会不间断地打破:
    设置分页

  • 将其打开:

  • 设置不间断

使用这些命令来操作不间断模式设置:

  • 启用不间断模式选择:

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

如果这个小变化没问题,你可以给线程发送一个STOP信号(不是gdb命令gdb - 变量)并调试其他所有运行的信号。信号CONT让线程继续。