Analyze a Windows crash dump
MCP connection
Use the existing mcp-windbg MCP connection, whether it is launched by a plugin, a native executable, Python, or an HTTP service. Tool names below are base names; resolve them against the tools exposed by that connection rather than assuming a plugin-specific prefix. Keep each session on the server that opened it. If multiple servers match, use the user's selected server or ask which one. If the required tools are unavailable, report the missing connection or tool and help check its configuration; do not register a second server.
Work through a .dmp file with the mcp-windbg tools and report what actually
crashed, not just what the debugger printed.
Getting a dump path
If the user gave a path, use it. If not, call list_dumps to show what is in
the local crash dump directory and ask which one. Do not guess.
Triage
open_cdb_dumpwith the path. Passinclude_stack_trace: true; addinclude_modulesorinclude_threadsonly if the question calls for them. Keep the returnedsession_idfor every follow-up call.run_cdb_commandwith!analyze -v. This is the single most informative command and belongs in every triage.- Follow the evidence with further
run_cdb_commandcalls. Useful next steps:k/kbfor the call stack with argumentslmto see whether the faulting module has symbols.exr -1,.ecxrfor the exception record and contextdt,dx,db/ddto inspect the data the crash implicates
close_cdb_sessionwhen you are done.
Reporting
Lead with the answer: what failed, where, and why, in the first two sentences. Then support it - exception code and its meaning, the faulting frame, and the specific evidence that points there.
Two things worth being explicit about:
- Say when symbols are missing. A stack full of
module+0x1234is a symbol problem, not an analysis result. Say so rather than reading meaning into offsets, and mention_NT_SYMBOL_PATH. - Separate fact from inference. "The access violation is at a null
thispointer" is a fact from the register state. "This is probably a use-after-free" is a hypothesis - label it as one and say what would confirm it.
If the dump does not support a conclusion, say that. An honest "this dump only shows the crash point, not the cause, and here is what would" is more useful than a confident guess.