在CLion

时间:2018-12-06 14:53:43

标签: multithreading debugging clion

我能够在CLion调试中运行我的多线程C ++应用程序。但是,每次我执行下一条指令时,调用堆栈在线程之间跳转实际上是没有用的。大约跳了3次之后,我无法知道线程在哪里。而且必须从下拉菜单中选择线程太尴尬了。

似乎应该有一种方法可以分别监视每个线程。其他JetBrains产品中有一个称为“并行堆栈”的功能似乎可以解决此问题。但是我没有在CLion(2018.2.5)中看到它。

理想情况下,一个可以强制IDE保留(并逐步执行)一个线程,而其他线程则在后台运行。如果在另一个线程中遇到了断点,则将出现一个单独的调用堆栈,表明该线程已停止,但是源代码显示将停留在正在监视的线程上。

是否有某种方法可以实现这样的目标,或者有另一种方案可以有效地调试多线程应用?

1 个答案:

答案 0 :(得分:1)

在CLion中使用lldb调试使用MSVC构建的应用程序时,遇到了相同的问题。我通过在调试控制台中使用lldb命令(例如thread step-over)找到了部分解决方案。我想如果您使用gdb,也可以应用相同的逻辑。