dump.json (22bd6e9c152ae49de62a91f295bd9fc670806aca) | dump.json (a937b6aa739f65f2cae2ad9a7eb65a309ad2a359) |
---|---|
1# -*- Mode: Python -*- 2# vim: filetype=python 3# 4# This work is licensed under the terms of the GNU GPL, version 2 or later. 5# See the COPYING file in the top-level directory. 6 7## 8# = Dump guest memory --- 7 unchanged lines hidden (view full) --- 16# @elf: elf format 17# 18# @kdump-zlib: kdump-compressed format with zlib-compressed 19# 20# @kdump-lzo: kdump-compressed format with lzo-compressed 21# 22# @kdump-snappy: kdump-compressed format with snappy-compressed 23# | 1# -*- Mode: Python -*- 2# vim: filetype=python 3# 4# This work is licensed under the terms of the GNU GPL, version 2 or later. 5# See the COPYING file in the top-level directory. 6 7## 8# = Dump guest memory --- 7 unchanged lines hidden (view full) --- 16# @elf: elf format 17# 18# @kdump-zlib: kdump-compressed format with zlib-compressed 19# 20# @kdump-lzo: kdump-compressed format with lzo-compressed 21# 22# @kdump-snappy: kdump-compressed format with snappy-compressed 23# |
24# @win-dmp: Windows full crashdump format, 25# can be used instead of ELF converting (since 2.13) | 24# @win-dmp: Windows full crashdump format, can be used instead of ELF 25# converting (since 2.13) |
26# 27# Since: 2.0 28## 29{ 'enum': 'DumpGuestMemoryFormat', 30 'data': [ 'elf', 'kdump-zlib', 'kdump-lzo', 'kdump-snappy', 'win-dmp' ] } 31 32## 33# @dump-guest-memory: 34# | 26# 27# Since: 2.0 28## 29{ 'enum': 'DumpGuestMemoryFormat', 30 'data': [ 'elf', 'kdump-zlib', 'kdump-lzo', 'kdump-snappy', 'win-dmp' ] } 31 32## 33# @dump-guest-memory: 34# |
35# Dump guest's memory to vmcore. It is a synchronous operation that can take 36# very long depending on the amount of guest memory. | 35# Dump guest's memory to vmcore. It is a synchronous operation that 36# can take very long depending on the amount of guest memory. |
37# | 37# |
38# @paging: if true, do paging to get guest's memory mapping. This allows 39# using gdb to process the core file. | 38# @paging: if true, do paging to get guest's memory mapping. This 39# allows using gdb to process the core file. |
40# | 40# |
41# IMPORTANT: this option can make QEMU allocate several gigabytes 42# of RAM. This can happen for a large guest, or a 43# malicious guest pretending to be large. | 41# IMPORTANT: this option can make QEMU allocate several gigabytes 42# of RAM. This can happen for a large guest, or a malicious guest 43# pretending to be large. |
44# | 44# |
45# Also, paging=true has the following limitations: | 45# Also, paging=true has the following limitations: |
46# | 46# |
47# 1. The guest may be in a catastrophic state or can have corrupted 48# memory, which cannot be trusted 49# 2. The guest can be in real-mode even if paging is enabled. For 50# example, the guest uses ACPI to sleep, and ACPI sleep state 51# goes in real-mode 52# 3. Currently only supported on i386 and x86_64. | 47# 1. The guest may be in a catastrophic state or can have 48# corrupted memory, which cannot be trusted 49# 2. The guest can be in real-mode even if paging is enabled. For 50# example, the guest uses ACPI to sleep, and ACPI sleep state 51# goes in real-mode 52# 3. Currently only supported on i386 and x86_64. |
53# | 53# |
54# @protocol: the filename or file descriptor of the vmcore. The supported 55# protocols are: | 54# @protocol: the filename or file descriptor of the vmcore. The 55# supported protocols are: |
56# | 56# |
57# 1. file: the protocol starts with "file:", and the following 58# string is the file's path. 59# 2. fd: the protocol starts with "fd:", and the following string 60# is the fd's name. | 57# 1. file: the protocol starts with "file:", and the following 58# string is the file's path. 59# 2. fd: the protocol starts with "fd:", and the following string 60# is the fd's name. |
61# | 61# |
62# @detach: if true, QMP will return immediately rather than 63# waiting for the dump to finish. The user can track progress 64# using "query-dump". (since 2.6). | 62# @detach: if true, QMP will return immediately rather than waiting 63# for the dump to finish. The user can track progress using 64# "query-dump". (since 2.6). |
65# 66# @begin: if specified, the starting physical address. 67# | 65# 66# @begin: if specified, the starting physical address. 67# |
68# @length: if specified, the memory size, in bytes. If you don't 69# want to dump all guest's memory, please specify the start @begin 70# and @length | 68# @length: if specified, the memory size, in bytes. If you don't want 69# to dump all guest's memory, please specify the start @begin and 70# @length |
71# | 71# |
72# @format: if specified, the format of guest memory dump. But non-elf 73# format is conflict with paging and filter, ie. @paging, @begin and 74# @length is not allowed to be specified with non-elf @format at the 75# same time (since 2.0) | 72# @format: if specified, the format of guest memory dump. But non-elf 73# format is conflict with paging and filter, ie. @paging, @begin 74# and @length is not allowed to be specified with non-elf @format 75# at the same time (since 2.0) |
76# 77# Note: All boolean arguments default to false 78# 79# Returns: nothing on success 80# 81# Since: 1.2 82# 83# Example: 84# 85# -> { "execute": "dump-guest-memory", 86# "arguments": { "paging": false, "protocol": "fd:dump" } } 87# <- { "return": {} } | 76# 77# Note: All boolean arguments default to false 78# 79# Returns: nothing on success 80# 81# Since: 1.2 82# 83# Example: 84# 85# -> { "execute": "dump-guest-memory", 86# "arguments": { "paging": false, "protocol": "fd:dump" } } 87# <- { "return": {} } |
88# | |
89## 90{ 'command': 'dump-guest-memory', 91 'data': { 'paging': 'bool', 'protocol': 'str', '*detach': 'bool', 92 '*begin': 'int', '*length': 'int', 93 '*format': 'DumpGuestMemoryFormat'} } 94 95## 96# @DumpStatus: --- 40 unchanged lines hidden (view full) --- 137# 138# Since: 2.6 139# 140# Example: 141# 142# -> { "execute": "query-dump" } 143# <- { "return": { "status": "active", "completed": 1024000, 144# "total": 2048000 } } | 88## 89{ 'command': 'dump-guest-memory', 90 'data': { 'paging': 'bool', 'protocol': 'str', '*detach': 'bool', 91 '*begin': 'int', '*length': 'int', 92 '*format': 'DumpGuestMemoryFormat'} } 93 94## 95# @DumpStatus: --- 40 unchanged lines hidden (view full) --- 136# 137# Since: 2.6 138# 139# Example: 140# 141# -> { "execute": "query-dump" } 142# <- { "return": { "status": "active", "completed": 1024000, 143# "total": 2048000 } } |
145# | |
146## 147{ 'command': 'query-dump', 'returns': 'DumpQueryResult' } 148 149## 150# @DUMP_COMPLETED: 151# 152# Emitted when background dump has completed 153# 154# @result: final dump status 155# | 144## 145{ 'command': 'query-dump', 'returns': 'DumpQueryResult' } 146 147## 148# @DUMP_COMPLETED: 149# 150# Emitted when background dump has completed 151# 152# @result: final dump status 153# |
156# @error: human-readable error string that provides 157# hint on why dump failed. Only presents on failure. The 158# user should not try to interpret the error string. | 154# @error: human-readable error string that provides hint on why dump 155# failed. Only presents on failure. The user should not try to 156# interpret the error string. |
159# 160# Since: 2.6 161# 162# Example: 163# 164# <- { "event": "DUMP_COMPLETED", 165# "data": { "result": { "total": 1090650112, "status": "completed", 166# "completed": 1090650112 } }, 167# "timestamp": { "seconds": 1648244171, "microseconds": 950316 } } | 157# 158# Since: 2.6 159# 160# Example: 161# 162# <- { "event": "DUMP_COMPLETED", 163# "data": { "result": { "total": 1090650112, "status": "completed", 164# "completed": 1090650112 } }, 165# "timestamp": { "seconds": 1648244171, "microseconds": 950316 } } |
168# | |
169## 170{ 'event': 'DUMP_COMPLETED' , 171 'data': { 'result': 'DumpQueryResult', '*error': 'str' } } 172 173## 174# @DumpGuestMemoryCapability: 175# 176# A list of the available formats for dump-guest-memory --- 4 unchanged lines hidden (view full) --- 181 'data': { 182 'formats': ['DumpGuestMemoryFormat'] } } 183 184## 185# @query-dump-guest-memory-capability: 186# 187# Returns the available formats for dump-guest-memory 188# | 166## 167{ 'event': 'DUMP_COMPLETED' , 168 'data': { 'result': 'DumpQueryResult', '*error': 'str' } } 169 170## 171# @DumpGuestMemoryCapability: 172# 173# A list of the available formats for dump-guest-memory --- 4 unchanged lines hidden (view full) --- 178 'data': { 179 'formats': ['DumpGuestMemoryFormat'] } } 180 181## 182# @query-dump-guest-memory-capability: 183# 184# Returns the available formats for dump-guest-memory 185# |
189# Returns: A @DumpGuestMemoryCapability object listing available formats for 190# dump-guest-memory | 186# Returns: A @DumpGuestMemoryCapability object listing available 187# formats for dump-guest-memory |
191# 192# Since: 2.0 193# 194# Example: 195# 196# -> { "execute": "query-dump-guest-memory-capability" } 197# <- { "return": { "formats": 198# ["elf", "kdump-zlib", "kdump-lzo", "kdump-snappy"] } } | 188# 189# Since: 2.0 190# 191# Example: 192# 193# -> { "execute": "query-dump-guest-memory-capability" } 194# <- { "return": { "formats": 195# ["elf", "kdump-zlib", "kdump-lzo", "kdump-snappy"] } } |
199# | |
200## 201{ 'command': 'query-dump-guest-memory-capability', 202 'returns': 'DumpGuestMemoryCapability' } | 196## 197{ 'command': 'query-dump-guest-memory-capability', 198 'returns': 'DumpGuestMemoryCapability' } |