Multithreading 在克利永中调试多线程C++应用程序 我可以在克利永调试中运行我的多线程C++应用程序。但是,每次我执行下一条指令时,调用堆栈都会在线程之间跳转,这实际上是无用的。大约跳了3次后,我就不知道哪根线在哪里了。而且必须从下拉列表中选择线程太尴尬了

Multithreading 在克利永中调试多线程C++应用程序 我可以在克利永调试中运行我的多线程C++应用程序。但是,每次我执行下一条指令时,调用堆栈都会在线程之间跳转,这实际上是无用的。大约跳了3次后,我就不知道哪根线在哪里了。而且必须从下拉列表中选择线程太尴尬了,multithreading,debugging,clion,Multithreading,Debugging,Clion,似乎应该有一种方法来分别监视每个线程。其他JetBrains产品中有一个称为并行堆栈的功能似乎可以解决这个问题。但我在CLion 2018.2.5中没有看到这一点 理想情况下,当其他线程在后台运行时,可以强制IDE保持并逐步通过一个线程。如果在另一个线程中遇到断点,则会出现一个单独的调用堆栈,指示断点已停止,但源代码显示将停留在被监视的线程上 是否有某种方法可以实现类似的效果,或者有另一种方案可以高效地调试多线程应用程序?在CLion中使用lldb调试使用MSVC构建的应用程序时,我遇到了同样的

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

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


是否有某种方法可以实现类似的效果,或者有另一种方案可以高效地调试多线程应用程序?

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