O'Reilly logo

Memory Dump Analysis Anthology, Volume 4 by Dmitry Vostokov

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 1. Professional Crash Dump Analysis and Debugging

Common Mistakes

Not Using Checklists

One of the common mistakes is to habitually stick to certain WinDbg commands to recognize patterns. One example is !locks command used to find out any wait chains and deadlock conditions among threads. A service process was reported to be hang[1] and !locks command showed no blocked threads:

0:000> !locks
CritSec +18caf94 at 018CAF94
LockCount          -2
RecursionCount      1
OwningThread        58e8
EntryCount          0
ContentionCount     0
*** Locked

CritSec +18cc7c4 at 018CC7C4
LockCount          -2
RecursionCount      1
OwningThread        58e8
EntryCount          0
ContentionCount     0
*** Locked

The number of threads waiting for the lock is 0 (this calculation is explained in the MSDN article[2]):

0:000> ? ((-1) ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required