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-field
register-set.register-name
cpu-register-name.sub-field
cpu-register-name
all
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=value
register-set.register-name=value
cpu-register-name.sub-field=value
cpu-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
*
).