我能够在 CLion 调试中运行我的多线程 C++ 应用程序。然而,每次我进入下一条指令时,调用堆栈在线程之间跳转实际上是无用的。大约 3 次跳跃后,我忘记了线程在哪里。不得不从下拉菜单中选择线程太尴尬了。
似乎应该有一种方法可以分别监视每个线程。其他 JetBrains 产品中有一个名为“Parallel Stacks”的功能似乎可以解决这个问题。但是我在 CLion(2018.2.5)中没有看到它。
理想情况下,可以强制 IDE 保持(并逐步执行)一个线程,而其他线程在后台运行。如果在另一个线程中遇到断点,则应出现一个单独的调用堆栈,指示它已停止,但源代码显示将停留在被监视的线程上。
有没有办法实现这样的目标,或者有其他方案可以高效地调试多线程应用程序?
最佳答案
在 CLion 中使用 lldb 调试使用 MSVC 构建的应用程序时,我遇到了同样的问题。我通过在调试控制台中使用 lldb 命令找到了部分解决方案(例如 thread step-over
)。如果您使用 gdb,我想您可以应用相同的逻辑。
关于multithreading - 在 CLion 中调试多线程 C++ 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53654050/