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

标签 multithreading debugging clion

我能够在 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/

相关文章:

multithreading - 如何将 parMap 与一元函数一起使用?

c++ - 条件断点在不应触发时触发

javascript - 如何在 HTML 中进行调试

java - 不调用进入 future 名单

c# - 使用多线程更快地读取文件?

c# - 如何处理容易挂起当前线程的调用

c++ - 调试 "multiple definition of ..."错误的一般技巧?

intellij-idea - CLion - 更改默认构建目录

c - "Use of a signed integer operand with a binary bitwise operator"- 使用 unsigned short 时

ide - CLion 突出显示设置(覆盖)