← ClaudeAtlas

debug-dumpslisted

Analyze and debug Windows crash dumps (.dmp) and app crashes for Agentmaster (the C++/WinRT WindowsTerminal fork) WITHOUT cdb/WinDbg — using the in-repo DIA-SDK + DbgHelp tools. Covers the whole loop: find the crash (WER Application Error event id 1000 + the full dump in %LOCALAPPDATA%\CrashDumps), read the exception record + faulting registers (dumpexc), decode what it means (0xC0000005 access violation, 0xC0000409 __fastfail incl. the CFG subcode 0xA freed-vtable, 0xC000027B stowed fail-fast, the 0xDDDDDDDD "dead-land" freed-memory register signature, non-canonical -1 faultData), walk the faulting-thread stack (dumpwalk2 ordered StackWalkEx; dumpourscan full-stack scan for OUR frames with a module histogram; dumpstack/hangwalk fallbacks), and symbolize OUR frames against the matching build's PDBs to pin the exact source line + root cause. Encodes the hard-won patterns: matching the PDB to the CRASHED binary by build time, "zero of our frames == a deferred/async XAML fail-fast off our call stack (uncatchable
Nucs/Agentmaster · ★ 1 · Code & Development · score 74
Install: claude install-skill Nucs/Agentmaster
# Debugging crashes & dumps (no cdb/WinDbg) The battle-tested loop for finding the root cause of an Agentmaster (or any native Windows-app) crash on a box with **no Debugging Tools for Windows installed** — using the DIA SDK + DbgHelp that ship with VS 2022. Born from a run of C++/WinRT XAML-Islands crashes (tooltip use-after-frees, deferred fail-faults, fire_and_forget terminates) diagnosed entirely from dumps. ## 0. Prerequisites (one-time) - **VS 2022** with the C++ workload (any edition) — provides `cl.exe`, `dbghelp.lib`, and the **DIA SDK** (`<VS>\DIA SDK\include\dia2.h`) + `msdia140.dll`. No cdb/WinDbg needed. - Build the tools once: `cmd /c .claude\skills\debug-dumps\scripts\build.bat` → the 6 analysis `.exe` + the `makedump` fixture generator land in `scripts\`. `build.bat` auto-detects VS via `vswhere` (falls back to Community) and finds the DIA SDK beside it. Re-run any time. - **Git Bash note:** when passing Windows paths to these `.exe`, prefix the command with `MSYS_NO_PATHCONV=1` and use `\\`-escaped absolute paths, or MSYS mangles them. - **msdia140.dll path:** the DIA tools `NoRegCoCreate` it from a hardcoded VS-Community path (`...\Common7\IDE\Automation\msdia140.dll`). On a non-Community edition, edit `kMsdia` in `dumpourscan.cpp`/`dumpstack.cpp`/`diasym.cpp` and rebuild. ## 1. Find the crash Two artifacts. Get both: ```bash # (a) The WER Application Error event — module + exception code + fault offset + package + timestamp: powershell -No