【问题标题】:Debugging multithreaded C++ application in CLion在 CLion 中调试多线程 C++ 应用程序
【发布时间】:2020-03-10 01:13:27
【问题描述】:

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

似乎应该有一种方法可以分别监控每个线程。其他 JetBrains 产品中有一个名为“Parallel Stacks”的功能似乎可以解决这个问题。但我在 CLion (2018.2.5) 中看不到它。

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

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

【问题讨论】:

    标签: multithreading debugging clion


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-01
      • 1970-01-01
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      相关资源
      最近更新 更多