c++ - 如何调试挂起(死锁)的 C++ 多线程应用程序?

标签 c++ multithreading debugging

在 Java 中调试挂起的应用程序很容易。您可以获取应用程序的内存转储并使用 eclipse jvm 转储分析器来查看线程的状态以及每个线程被阻塞的位置?

C++ 是否存在类似的东西?

最佳答案

gdb 中神奇的调用是:

thread all apply bt

为所有线程运行 bt(回溯)命令。除非您完全剥离了您的程序,否则您应该能够看到每个函数的名称。

这适用于实时调试和事后调试(即针对核心运行 gdb)。

关于c++ - 如何调试挂起(死锁)的 C++ 多线程应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1506131/

相关文章:

c++ - 在同一语句中编写引用声明和赋值

c++ - 我如何获得可用于在 Linux 上的异​​步套接字上读取的字节数?

c++ - 如何在 Windows (win32) 上获取每个线程的 cpu 使用率

c++ - 多线程C++应用中的插件/模块通信方法

debugging - 编译器错误: The program '[10216] ConsoleApplication1.exe' has exited with code -1073741701 (0xc000007b)

c# - 时间旅行调试 : how to install it without the store?

c++ - 如何安装 socket.io C++ 客户端库

java - android 中如何允许两个线程按预定义的顺序执行?

匹配运算符的 Perl 内存泄漏

c++ - 错误: identifier :"SHGetKnownFolderPath" is unidentified