multithreading - 多线程和GDB

标签 multithreading

在C++多线程环境中,有两个线程正在运行,当第二个线程尝试访问某些内容时程序会崩溃,但是崩溃是由于第一个线程而发生的。您如何使用GDB找出这一点。

最佳答案

使用thread 1thread 2(或t 1t 2)在线程之间进行切换,并使用bt获得两者的堆栈跟踪。然后打印一些变量,以猜测哪个是坏的,未初始化的,超出范围的,等等。:)

看看帮助。 help threads给您提示...

my2c

关于multithreading - 多线程和GDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4814708/

相关文章:

c# - 为什么忽略 STAThread 属性?

linux - 缩短进程崩溃和头部射击服务器之间的时间?

python - 项目列表上的多个 worker

java - 关于相同/不同对象上的 java 线程的混淆

java - 停止无限循环 Runnable 从 ThreadPool 运行

java - 获取 FinalizedDeleatedExecutorService 的状态

multithreading - TensorFlow队列运行器如何工作?

c++ - 控制帧率

ios - API 线程问题 iOS

java - 具有多线程的 REST Api,用于在 Spring Boot 中处理文件