c - 未检测到 ThreadSanitizer 死锁并且最后没有结果(由于死锁程序)
问题描述
我想知道线程清理程序(clang)的死锁在哪里,但问题是程序被阻止并且在使用 -fsanitize=thread 选项的编译期间未检测到死锁。并且在执行结束时没有结果,因为程序被阻塞(由于死锁而无法退出程序)。
解决方案
如果程序已经被阻塞,你不需要 ThreadSanitizer 来调试它。您可以使用 gdb 附加到死锁进程,并使用thread apply all bt
. 您应该会看到尝试从thread apply all bt
输出中的不同线程锁定相同的互斥锁。
推荐阅读
- javascript - 聚合 JavaScript 集合
- java - 如何从数据库中获取多行并将其全部显示在 jTextArea 或 jLabel 中?
- amazon-web-services - Lambda function to S3 instance not uploading
- java - Java中两个String对象之间使用+运算符时的实现是什么?
- android - 图像未显示在 Imageview 中(在 Fragent 内,在选项卡式活动中的 ViewPager 内)-毕加索未替换占位符
- sorting - 按 Racket 列表中的元素排序
- python - 如何在pygame中添加主菜单和重试菜单
- sharepoint - 用于在 SharePoint PnP 搜索中获取用户名的用户句柄表达式
- node.js - Redis 在 docker 中未定义
- javascript - 我们如何在另一个组件中创建抽屉导航并在 app.js 中调用它