VM Memory Dumps
OpenVMM can dump a running VM's processor state and memory to a .vmrs
file compatible with WinDbg. This is useful for offline debugging of
guest crashes without needing a live debugger attached.
Overview
The dump-state command captures:
- VP registers — general-purpose, control, segment, table, debug, and FP/XSAVE registers for every virtual processor
- Guest RAM — the full contents of guest physical memory, streamed in 1 MiB blocks
The output is a .vmrs file that can be opened in WinDbg via the
VmSavedStateDumpProvider.dll from the Windows SDK.
Usage
While the VM is running, open the interactive console and run:
dump-state path/to/dump.vmrs
The shorter alias dump also works:
dump path/to/dump.vmrs
OpenVMM pauses the VM, collects state, streams guest memory to disk, and then resumes the VM. If the VM was already paused, it remains paused after the dump completes.
The file is written atomically — a temporary file is created first and renamed into place on success, so readers never see a partially-written dump.
Opening in WinDbg
-
Install the Windows SDK (the "Debugging Tools for Windows" component includes
VmSavedStateDumpProvider.dll). -
Open the
.vmrsfile in WinDbg:windbg -z path/to/dump.vmrs
WinDbg will load the saved processor state and allow you to inspect registers, stack traces, and memory contents as if attached to a live VM.