在CLion中调试多线程C++应用程序



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

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

理想情况下,当其他线程在后台运行时,可以强制IDE停留在一个线程上(并逐步通过(。如果在另一个线程中遇到断点,则会出现一个单独的调用堆栈,指示它已停止,但源代码显示将停留在被监视的线程上。

有没有某种方法可以实现这样的功能,或者有其他方案可以高效地调试多线程应用程序?

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

最新更新