Building your own debugging toolbox with ClrMD
summary
Demo shows using ClrMD to load a 20GB memory dump, attach to live processes, and programmatically inspect heaps instead of typing SOS commands. Code enumerates heap object addresses to produce a grouped list of duplicate strings, and walks the TimerQueue linked list to count scheduled timers and read intervals. Toolchain uses Microsoft.Diagnostics.Runtime, a small WPF analyzer and a native WinDbg extension built via DllExport to expose managed helpers; the extensions run and return readable results in the demo.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 0:44When to use ClrMD
- 3:20What is ClrMD
- 8:47ClrMD source code
- 10:45ClrMD implementation
- 18:43Writing the code
- 26:57The heap
- 33:28Magic marshalling
- 37:07Static field
- 48:25Windbg extension
- 52:32Magic
related talks
53mDeep .NET Debugging
53mDebugging .NET Apps
50mDiagnostic techniques for .NET running on Linux and within containers
01h 15mCSI .NET – Debugging .NET Applications
01h 00mInvestigating C++ Applications in Production on Linux and Windows
01h 00mC# Language Internals
52mApplication-Level Debugging and Profiling: Gaps in the Tool Ecosystem
03mInterview Speaker
