[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] Handle gdb.MemoryError exception in dump-guest-memory.py
From: |
Marc-André Lureau |
Subject: |
Re: [PATCH v2] Handle gdb.MemoryError exception in dump-guest-memory.py |
Date: |
Thu, 5 Mar 2020 10:46:48 +0100 |
Hi
On Sat, Feb 15, 2020 at 1:34 AM Kevin Buettner <address@hidden> wrote:
>
> [Included a "Signed-off-by" line in this version.]
>
> I recently investigated a bug in which the dump-guest-memory.py script
> sees a gdb.MemoryError exception while attempting to dump memory
> obtained from a QEMU core dump. (And, yes, dump-guest-core=on was
> specified in the -machine option of the QEMU invocation.)
>
> It turns out that memory region in question is not being placed in the
> core dump and, after stepping through the kernel core dumping code
> responsible for making this decision, it looks reasonable to me to not
> include that region in the core dump. The region in question consists
> of all zeros and, according to the kernel's logic, has never been
> written to.
>
> This commit makes a small change to the dump-guest-memory script to
> cause inaccessible memory to be dumped as zeroes. This avoids the
> exception and places the correct values in the guest memory dump.
>
> Signed-off-by: Kevin Buettner <address@hidden>
fwiw, Kevin fixed it in gdb:
https://sourceware.org/ml/gdb-patches/2020-03/msg00106.html
> ---
> scripts/dump-guest-memory.py | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/dump-guest-memory.py b/scripts/dump-guest-memory.py
> index 4177261d33..fbdfba458b 100644
> --- a/scripts/dump-guest-memory.py
> +++ b/scripts/dump-guest-memory.py
> @@ -539,7 +539,12 @@ shape and this command should mostly work."""
>
> while left > 0:
> chunk_size = min(TARGET_PAGE_SIZE, left)
> - chunk = qemu_core.read_memory(cur, chunk_size)
> + try:
> + chunk = qemu_core.read_memory(cur, chunk_size)
> + except gdb.MemoryError:
> + # Consider blocks of memory absent from a core file
> + # as being zeroed.
> + chunk = bytes(chunk_size)
> vmcore.write(chunk)
> cur += chunk_size
> left -= chunk_size
> --
> 2.24.1
>
>
--
Marc-André Lureau
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH v2] Handle gdb.MemoryError exception in dump-guest-memory.py,
Marc-André Lureau <=