2012-02-02 59 views
16

我想知道的是,如果可能的话,在Linux的调试会话中(读取:gdb :))停止执行单个线程,而让其他线程运行。在Linux中进行调试期间可以停止单个线程吗?

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

干杯 塞尔吉奥

+7

**道歉**更准确的谷歌搜索让我找到这个链接:(http://sourceware.org/gdb/onlinedocs/gdb/Non_002dStop-Mode.html#Non_002dStop-Mode)似乎回答我的题。干杯 – sergico 2012-02-02 10:18:44

+5

这是可以发布你的问题的答案。请做。 – 2012-02-02 10:40:11

+0

[不停止gdb中的所有线程]的可能的重复(http://stackoverflow.com/questions/3666331/not-stopping-all-threads-in-gdb) – 2012-02-02 20:22:54

回答

3

使用此命令序列运行或连接到您的程序之前:

  • 启用异步接口:
    设定的目标 - 异步1

  • 如果使用CLI,分页不间断:
    设置分页关闭

  • 打开它:
    设置马不停蹄的

使用这些命令来操纵不停模式设置:

  • 启用不停模式选择:
    设置不停机

  • 禁止选择不停机模式:
    组非下车

  • 显示当前不停启用设置:
    表明不停

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

0

您可以使用TotalView软件调试器来做到这一点

0

如果这种小的变化是好的,你可以发送一个STOP信号的线程(而不是gdb命令的gdb - 变体)并调试其他一切运行。信号CONT让线程继续。

相关问题