mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-17 21:26:13 -07:00
introduce a new monitor command 'dump-guest-memory' to dump guest's memory
The command's usage:
dump-guest-memory [-p] protocol [begin] [length]
The supported protocol can be file or fd:
1. file: the protocol starts with "file:", and the following string is
the file's path.
2. fd: the protocol starts with "fd:", and the following string is the
fd's name.
Note:
1. If you want to use gdb to process the core, please specify -p option.
The reason why the -p option is not default is:
a. guest machine in a catastrophic state can have corrupted memory,
which we cannot trust.
b. The guest machine can be in read-mode even if paging is enabled.
For example: the guest machine uses ACPI to sleep, and ACPI sleep
state goes in real-mode.
2. If you don't want to dump all guest's memory, please specify the start
physical address and the length.
Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
parent
68f4730c71
commit
783e9b4826
10 changed files with 1050 additions and 0 deletions
|
|
@ -601,6 +601,42 @@ Example:
|
|||
"port": 1234 } }
|
||||
<- { "return": {} }
|
||||
|
||||
EQMP
|
||||
|
||||
{
|
||||
.name = "dump-guest-memory",
|
||||
.args_type = "paging:b,protocol:s,begin:i?,end:i?",
|
||||
.params = "-p protocol [begin] [length]",
|
||||
.help = "dump guest memory to file",
|
||||
.user_print = monitor_user_noop,
|
||||
.mhandler.cmd_new = qmp_marshal_input_dump_guest_memory,
|
||||
},
|
||||
|
||||
SQMP
|
||||
dump
|
||||
|
||||
|
||||
Dump guest memory to file. The file can be processed with crash or gdb.
|
||||
|
||||
Arguments:
|
||||
|
||||
- "paging": do paging to get guest's memory mapping (json-bool)
|
||||
- "protocol": destination file(started with "file:") or destination file
|
||||
descriptor (started with "fd:") (json-string)
|
||||
- "begin": the starting physical address. It's optional, and should be specified
|
||||
with length together (json-int)
|
||||
- "length": the memory size, in bytes. It's optional, and should be specified
|
||||
with begin together (json-int)
|
||||
|
||||
Example:
|
||||
|
||||
-> { "execute": "dump-guest-memory", "arguments": { "protocol": "fd:dump" } }
|
||||
<- { "return": {} }
|
||||
|
||||
Notes:
|
||||
|
||||
(1) All boolean arguments default to false
|
||||
|
||||
EQMP
|
||||
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue