Windbg 这意味着什么!锁-所有螺纹都有';锁计数';=0

Windbg 这意味着什么!锁-所有螺纹都有';锁计数';=0,windbg,Windbg,我用WinDbg打开了crashdump,当我使用时!locks命令,我得到3个线程输出,每个线程的“lock count”=0 这意味着这些线程不会锁定任何对象(据我所知)。 我如何从这一点着手调查我正在处理的问题的根本原因?(绩效体系失效) 我正在调试的代码包含托管代码和非托管代码 线程上的锁计数为0意味着没有人在线程上同步。这并不意味着线程没有锁定任何对象。如果锁定对象,则该信息存储在该对象上(例如,关键部分、互斥或信号量) 一方面,您正在查找锁,这让我假设发生了死锁。另一方面,你提到了性

我用WinDbg打开了crashdump,当我使用
时!locks
命令,我得到3个线程输出,每个线程的“lock count”=0

这意味着这些线程不会锁定任何对象(据我所知)。 我如何从这一点着手调查我正在处理的问题的根本原因?(绩效体系失效)


我正在调试的代码包含托管代码和非托管代码

线程上的锁计数为0意味着没有人在线程上同步。这并不意味着线程没有锁定任何对象。如果锁定对象,则该信息存储在该对象上(例如,关键部分、互斥或信号量)

一方面,您正在查找锁,这让我假设发生了死锁。另一方面,你提到了性能。区分这两者应该很容易。如果出现死锁,您将无法再获得结果,有时进程的CPU使用率甚至会降至0%。有了性能问题,wou仍然会得到结果,但您需要等待更长的时间

崩溃转储文件可以帮助解决死锁问题,但它很少有助于解决性能问题,特别是当您只有一个崩溃转储文件时


您应该使用性能分析器来分析性能问题。

线程上的锁计数为0意味着没有人在线程上同步。这并不意味着线程没有锁定任何对象。如果锁定对象,则该信息存储在该对象上(例如,关键部分、互斥或信号量)

一方面,您正在查找锁,这让我假设发生了死锁。另一方面,你提到了性能。区分这两者应该很容易。如果出现死锁,您将无法再获得结果,有时进程的CPU使用率甚至会降至0%。有了性能问题,wou仍然会得到结果,但您需要等待更长的时间

崩溃转储文件可以帮助解决死锁问题,但它很少有助于解决性能问题,特别是当您只有一个崩溃转储文件时


您应该使用性能分析器来分析性能问题。

Google“代码分析”您试图调试的是什么问题?绞刑?锁不是导致应用程序挂起的唯一原因。谷歌“代码分析”你想调试什么问题?绞刑?锁不是应用程序挂起的唯一原因。