在Linux中调试时是否可以停止单个线程
Is it possible to stop a single thread during debug in Linux?
我想知道的是,在Linux的调试会话中,(读:gdb:))是否有可能停止单个线程的执行,让其他线程运行。
如果有人好奇为什么要继续阅读:我写了一个软件看门狗C++类(使用Qt)。我用一个简单的多线程程序测试了它,但我也想在将代码集成到实际应用程序中后对其进行测试。如果我可以停止调试器中的线程,这将简化这个测试阶段。:)
干杯Sergio
在运行或附加到程序之前使用以下命令序列:
-
启用异步接口:
设置目标异步1 -
如果使用CLI,分页将不间断地中断:
关闭分页 -
打开它:
在上设置为不间断
使用以下命令操作不间断模式设置:
-
启用不间断模式选择:
在上设置为不间断 -
禁用不间断模式选择:
设置不间断关闭 -
显示当前不间断启用的设置:
显示不间断
参考文献:
http://sourceware.org/gdb/onlinedocs/gdb/Non_002dStop-Mode.html#Non_002dStop-模式
您可以使用totalview调试器来执行
如果这个小的变化是可以的,你可以向线程发送一个STOP信号(而不是作为gdb命令gdb-那个变化),并调试其他正在运行的一切。信号CONT使线程继续。
相关文章:
- 在C++中使用线程查找友好号码比单个线程花费更多时间
- 如何使用 TBB 在单个线程中运行函数
- 有人可以解释为什么使用 OpenMP 部分的运行速度比单个线程慢吗?
- 为什么向量"emplace_back"在多个线程中的行为比单个线程慢得多
- 通过创建单个线程来运行一段代码可加快执行速度
- 线程安全 std::map:锁定整个映射和单个值
- 为多个对象创建单个线程
- asio::strand 上的任务在单个线程上运行
- C 如果一个线程写入Bool曾经完成,则可以安全地阅读单个线程中的循环中的Bool
- 避免单个线程中的死锁
- 期货是检查单个线程完成情况的安全方法吗
- 在Linux中调试时是否可以停止单个线程
- 将程序拆分为4个线程比单个线程要慢
- Qt5中存在哪些同步原语,允许我在单个线程中等待信号到达
- c/c++可以在单个线程中执行抢占式多任务吗?
- 为什么单个线程比多个线程快,即使它们本质上具有相同的开销
- 序列化io_service::post()的执行,只在单个线程中调用io_service::run()
- 是保证在单个线程内执行Java代码的顺序
- 单个线程中的多个 tcp 连接,使用 libevent 或 boost::asio。有可能?
- c++:如果发生段错误或类似的事情,是否有一种方法可以终止单个线程,但保持应用程序运行