PowerShell module for analyzing .NET crash dumps and TTD traces with filesystem-like navigation and debugging capabilities
CrashDrive exposes 5 PowerShell cmdlets as MCP tools. All have descriptions (10 - 200 chars, baseline 194), but parameter documentation is sparse. Enable-CrashEditorFollow and Disable-CrashEditorFollow lack input schemas entirely. Get-CrashLocalVariable, Get-CrashObject, and Invoke-CrashCommand have partial schemas with type info but minimal parameter descriptions. No output schemas documented. Tool names follow verb_noun convention (Enable, Disable, Get, Invoke) but descriptions are domain-specific (crash dumps, TTD, dbgeng) and assume deep debugger knowledge. Error handling and recovery guidance absent. Schemas present but incomplete; parameters lack constraints (enums, ranges, formats).
Disables editor follow mode.
Enables editor follow mode: when the current location changes to a CrashDrive path that carries a source file + line (e.g. a trace event, a frame with symbols), automatically open that location in the editor.
Inspect local variables for a specific stack frame in a Dump or Ttd drive. Uses dbgeng's data model: seeks (for TTD), switches thread, sets the frame context, then reads @$curframe.LocalVariables. Quality of results depends entirely on symbol availability.
Inspect a managed (.NET) object on the GC heap of a Dump drive. Returns a structured PSObject with TypeName, Size, and Fields[]. Reference-typed fields are shown as addresses (follow with another Get-CrashObject call).
Run an arbitrary dbgeng command against a Dump or Ttd drive and emit the captured text output. Shares the drive's session via DbgEngSessionManager.AcquireFor, so commands run in the same engine instance the provider uses for path resolution.
Enable-CrashEditorFollow and Disable-CrashEditorFollow have no input schemas. Enable-CrashEditorFollow accepts EditorCommand and ArgumentsTemplate but no type/description metadata visible in schema form.
Parameter descriptions are minimal or missing. Get-CrashLocalVariable's ThreadId description is 80+ chars but lacks format guidance (hex vs decimal). Get-CrashObject's Expand parameter has no description. Invoke-CrashCommand's Position parameter description is 60+ chars but omits examples of valid formats.
No output schemas documented. Tools return structured data (PSObject, text) but LLMs cannot infer field names, types, or pagination. Get-CrashObject returns TypeName, Size, Fields[] but this is inferred from description, not formally declared.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
No error handling or recovery guidance. Tools may fail (symbol unavailability, invalid thread ID, dbgeng errors) but descriptions do not explain failure modes or suggest corrective actions.
Parameter constraints missing. ThreadId accepts 'hex form (0xa098 or a098)' but no enum or pattern constraint. Position accepts '8F_1DCE', '8F:1DCE', 'start', 'end' but no formal constraint. LLMs will hallucinate invalid formats.