# Download crash dumps and build artifacts (PDBs) from a CI run
gh run download <run_id> -R <owner>/ebpf-for-windows -n "Crash-Dumps-<test>-x64-<config>" -D crash-dumps
gh run download <run_id> -R <owner>/ebpf-for-windows -n "Build-x64-<config>" -D build
# Extract inner build zip for PDBs (produces build\<config>\<config>\ with PDBs)
Expand-Archive build\build-<config>.zip -DestinationPath build\<config>
Fault injection crashes: Usually assert _allocations.empty() in leak_detector.cpp — a memory leak detected during teardown. Check the leak detector's _in_memory_log for the allocation call stack:
$$ Get exception context and inspect the stack to find the leak_detector frame:
.ecxr
kP
$$ Identify the frame index where 'this' is the leak_detector instance
.frame <N>
dx this->_in_memory_log
Crash dump artifacts: Named Crash-Dumps-<test_name>-<platform>-<config> (e.g., Crash-Dumps-fault_injection_full-x64-Debug)
Build artifacts with PDBs: Named <build_artifact>-<config> (for the default build_artifact=Build-x64, this is Build-x64-Debug), and contain an inner zip build-<config>.zip
1---2name: microsoft-ebpf-for-windows-ebpf-for-windows3description: Crash Dump Debugging4---56# Crash Dump Debugging78Download and analyze crash dumps from CI workflow failures (especially `fault_injection_full`).910See [docs/CrashDumpDebugging.md](../../../docs/CrashDumpDebugging.md) for the full human-readable guide.1112## When to Use1314- User asks to debug a CI crash or test failure with a crash dump15- User asks to download crash dump artifacts from a workflow run16- User asks to set up CDB, WinDbg, or mcp-windbg17- User asks to analyze a `.dmp` file18- User asks about fault injection leak detection failures1920## Agent Prerequisites21221. **Windows Debugging Tools (CDB/WinDbg)** — Install the Debugging Tools feature from the Windows SDK:23 ```powershell24 # Download the SDK online installer25 Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/?linkid=2272610" -OutFile winsdksetup.exe26 # Install only the debugging tools (elevated)27 Start-Process -FilePath .\winsdksetup.exe -ArgumentList "/features","OptionId.WindowsDesktopDebuggers","/quiet","/norestart" -Verb RunAs -Wait28 ```29 CDB installs to: `C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\cdb.exe`30312. **mcp-windbg** (MCP server for AI-assisted dump analysis):32 ```powershell33 # Install Python 3.12 via NuGet (if not already available)34 nuget install python -Version 3.12.8 -OutputDirectory C:\Users\$env:USERNAME\tools35 $pyExe = (Get-ChildItem "C:\Users\$env:USERNAME\tools\python.3.12.8" -Recurse -Filter "python.exe" | Select-Object -First 1).FullName36 & $pyExe -m ensurepip --upgrade37 & $pyExe -m pip install mcp-windbg38 ```3940## Downloading Artifacts4142```powershell43# Download crash dumps and build artifacts (PDBs) from a CI run44gh run download <run_id> -R <owner>/ebpf-for-windows -n "Crash-Dumps-<test>-x64-<config>" -D crash-dumps45gh run download <run_id> -R <owner>/ebpf-for-windows -n "Build-x64-<config>" -D build46# Extract inner build zip for PDBs (produces build\<config>\<config>\ with PDBs)47Expand-Archive build\build-<config>.zip -DestinationPath build\<config>48```4950## Analyzing Dumps with CDB5152```powershell53$cdbPath = "C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\cdb.exe"54$symPath = "build\<config>\<config>;SRV*C:\Symbols*https://msdl.microsoft.com/download/symbols"5556# Quick triage: exception record + stack trace57& $cdbPath -z crash-dumps\unit_tests.exe.XXXX.dmp -y $symPath -lines -c ".ecxr;kP;q"5859# Full automated analysis60& $cdbPath -z crash-dumps\unit_tests.exe.XXXX.dmp -y $symPath -c "!analyze -v;q"61```6263## Running mcp-windbg Server6465```powershell66$pyExe = (Get-ChildItem "C:\Users\$env:USERNAME\tools\python.3.12.8" -Recurse -Filter "python.exe" | Select-Object -First 1).FullName67$cdbPath = "C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\cdb.exe"68$symPath = "build\<config>\<config>;SRV*C:\Symbols*https://msdl.microsoft.com/download/symbols"6970& $pyExe -m mcp_windbg --cdb-path $cdbPath --symbols-path $symPath --transport streamable-http --port 876571# MCP endpoint: http://127.0.0.1:8765/mcp72```7374## Common Patterns7576- **Fault injection crashes**: Usually assert `_allocations.empty()` in `leak_detector.cpp` — a memory leak detected during teardown. Check the leak detector's `_in_memory_log` for the allocation call stack:77 ```78 $$ Get exception context and inspect the stack to find the leak_detector frame:79 .ecxr80 kP81 $$ Identify the frame index where 'this' is the leak_detector instance82 .frame <N>83 dx this->_in_memory_log84 ```85- **Crash dump artifacts**: Named `Crash-Dumps-<test_name>-<platform>-<config>` (e.g., `Crash-Dumps-fault_injection_full-x64-Debug`)86- **Build artifacts with PDBs**: Named `<build_artifact>-<config>` (for the default `build_artifact=Build-x64`, this is `Build-x64-Debug`), and contain an inner zip `build-<config>.zip`8788---89> Source: [microsoft/ebpf-for-windows](https://github.com/microsoft/ebpf-for-windows) — distributed by [TomeVault](https://tomevault.io).90<!-- tomevault:4.0:skill_md:2026-06-26 -->
Run npx skillmds@latest add tomevault-io/microsoft-ebpf-for-windows-ebpf-for-windows in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Crash Dump Debugging It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
tomevault-io (@tomevault-io) published this skill. Their other Agent Skills are listed on their SkillMD profile.