windbg 死锁问题分析

针对临界区的死锁分析,比较简单   !cs xxxxx ,然后通过owningthread 来找到对应的线程,并查看调用栈。

 

原因大致有以下几种:

1、owningthread  忘了释放锁,  建议使用 autolock

2、线程中使用了嵌套锁

3、owningthread 被动的原因无法释放锁,比如

1)、使用开源库,异常时直接ExitThread。

2)、使用了 __try __except 捕获了异常, 导致锁未释放

3)、使用了开源库,抛出异常,未调用autolock的析构函数

 

具体可参考个人网站: http://91dengdeng.cn/?cat=1 


版权声明:本文为corrupt原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。