The "debugvm" commands are for experts who want to tinker with the exact details of virtual machine execution. Like the VM debugger described in Section 12.1.3, “The built-in VM debugger”, these commands are only useful if you are very familiar with the details of the PC architecture and how to debug software.
The subcommands of "debugvm" all operate on a running virtual machine. The following are available:
With dumpguestcore --filename
<name>, you can create a system dump of the
running VM, which will be written into the given file. This file
will have the standard ELF core format (with custom sections); see
Section 12.1.4, “VM core format”.
This corresponds to the
writecore command in the debugger.
The info command is used to
display info items relating to the VMM, device emulations and
associated drivers. This command takes one or two arguments: the
name of the info item, optionally followed by a string containing
arguments specific to the info item.
The help info item provides a
listning of the available items and hints about any optional
arguments.
This corresponds to the info
command in the debugger.
The injectnmi command causes
a non-maskable interrupt (NMI) in the guest, which might be useful
for certain debugging scenarios. What happens exactly is dependent
on the guest operating system, but an NMI can crash the whole guest
operating system. Do not use unless you know what you're
doing.
The osdetect command makes the
VMM's debugger facility (re-)detection the guest operation
system.
This corresponds to the detect
command in the debugger.
The osinfo command is used to
display info about the operating system (OS) detected by the VMM's
debugger facility.
The getregisters command is
used to display CPU and device registers. The command takes a list
of registers, each having one of the following forms:
register-set.register-name.sub-fieldregister-set.register-namecpu-register-name.sub-fieldcpu-register-nameall
The all form will cause all
registers to be shown (no sub-fields). The registers names are
case-insensitive. When requesting a CPU register the register set
can be omitted, it will be selected using the value of the
--cpu option (defaulting to 0).
The setregisters command is
used to change CPU and device registers. The command takes a list
of register assignments, each having one of the following forms:
register-set.register-name.sub-field=valueregister-set.register-name=valuecpu-register-name.sub-field=valuecpu-register-name=value
The value format should be in the same style as what
getregisters displays, with the
exception that both octal and decimal can be used instead of
hexadecimal. The register naming and the default CPU register set
are handled the same way as with the
getregisters command.
The statistics command can be
used to display VMM statistics on the command line. The
--reset option will reset
statistics. The affected statistics can be filtered with the
--pattern option, which accepts
DOS/NT-style wildcards (? and
*).