Crash Dump Analysis Patterns (Part 42l)

This is a variation of a general Wait Chain pattern related to CLR threads. When looking at Stack Trace Collection from a complete memory dump we may find threads using a monitor synchronization mechanism:

[... 32-bit ...]
09d2e908 6ba4d409 clr!CLREvent::WaitEx+0x106
09d2e91c 6bb90160 clr!CLREvent::Wait+0x19
09d2e9ac 6bb90256 clr!AwareLock::EnterEpilogHelper+0xa8
09d2e9ec 6bb9029b clr!AwareLock::EnterEpilog+0x42
09d2ea0c 6ba90f78 clr!AwareLock::Enter+0x5f
09d2eaa8 05952499 clr!JIT_MonEnterWorker_Portable+0xf8
[…]

or

[... 64-bit ...]
00000000`2094e230 000007fe`eedc3e3a clr!CLREvent::WaitEx+0xc1
00000000`2094e2d0 000007fe`eedc3d43 clr!AwareLock::EnterEpilogHelper+0xca
00000000`2094e3a0 000007fe`eee3e613 clr!AwareLock::EnterEpilog+0x63
00000000`2094e400 000007ff`007f4c38 clr!JIT_MonEnterWorker_Portable+0×14f
[…]

When seeing such threads we may ask for a process memory dump to perform .NET memory dump analysis using SOS or other WinDbg extensions such as in Deadlock pattern example for CLR 2 (mscorwks).

- Dmitry Vostokov @ DumpAnalysis.org + TraceAnalysis.org -

One Response to “Crash Dump Analysis Patterns (Part 42l)”

  1. Dmitry Vostokov Says:

    [… Newer .NET 4.7 …]
    05 0000002a`fc33e9b0 00007ff9`2d1aa491 clr!CLREventBase::WaitEx+0xc4
    06 0000002a`fc33ea40 00007ff9`2d1aa39e clr!AwareLock::EnterEpilogHelper+0xc2
    07 0000002a`fc33eb00 00007ff9`2d1c1a92 clr!AwareLock::EnterEpilog+0×62
    08 0000002a`fc33eb60 00007ff8`cdc9c58d clr!JITutil_MonEnterWorker+0xe2
    […]

Leave a Reply