标签:定位 查看 mutex2 代码 死锁 16GDB 线程 ID
1)thread apply all tb:大概查看一下所有线程堆栈情况,或者通过过滤,看看是否可以看一些问题
2)逐个线程排查
a. thread 线程编号:切换到指定线程
b. bt:查看堆栈
c. f 帧号:切换到我们关注的自己代码的栈帧
d. l :查看帧附近的代码,确认代码是否在等待相关资源,例如看到了程序卡在代码lock_guard<mutex> locker2(_mutex2)
这个时候可以看一下_mutex2的使用情况:p _mutex2,会看到Owner ID(LWP),它表示被谁占用了。
这个时候根据Owner ID查看相关线程为啥没有释放该锁。
另外,死锁解决方式通常有如下几种方式:
标签:定位,查看,mutex2,代码,死锁,16GDB,线程,ID 来源: https://www.cnblogs.com/qiumingcheng/p/15821869.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。