dump-guest-memory: more descriptive lookup_type failure
PATCH 1/1 dump-guest-memory: more descriptive lookup_type failure
We've seen a few reports of
(gdb) source /usr/share/qemu-kvm/dump-guest-memory.py Traceback (most recent call last):
File "/usr/share/qemu-kvm/dump-guest-memory.py", line 19, in <module>
UINTPTR_T = gdb.lookup_type("uintptr_t")
gdb.error: No type named uintptr_t.
This occurs when symbols haven't been loaded first, i.e. neither a QEMU binary was loaded nor a QEMU process was attached first. Let's better inform the user of how to fix the issue themselves in order to avoid more reports.
--- scripts/dump-guest-memory.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
scripts/dump-guest-memory.py +5 -1
@@ -16,7 +16,11 @@ the COPYING file in the top-level directory. import ctypes import struct -UINTPTR_T = gdb.lookup_type("uintptr_t") +try: + UINTPTR_T = gdb.lookup_type("uintptr_t") +except Exception as inst: + raise gdb.GdbError("Symbols must be loaded prior to sourcing dump-guest-memory.\n" + "Symbols may be loaded by first 'attach'ing a QEMU process id or by 'load'ing a QEMU binary.") TARGET_PAGE_SIZE = 0x1000 TARGET_PAGE_MASK = 0xFFFFFFFFFFFFF000
Signature · 1 line
2.13.6
Quoted 7 lines · Andrew Jones
We've seen a few reports of
(gdb) source
/usr/share/qemu-kvm/dump-guest-memory.pyTraceback (most recent call last):
File "/usr/share/qemu-kvm/dump-guest-memory.py", line 19, in <module>
UINTPTR_T=gdb.lookup_type("uintptr_t")
gdb.error: No type nameduintptr_t.
Oh yeah, I remember that particular error.
Quoted 28 lines
This occurs when symbols haven't been loaded first, i.e. neither a QEMU binary was loaded nor a QEMU process was attached first. Let's better inform the user of how to fix the issue themselves in order to avoid more reports.
Signed-off-by Andrew Jones <[email protected]>--- scripts/dump-guest-memory.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)scripts/dump-guest-memory.py +5
-1@@ -16,7 +16,11 @@ the COPYING file in the top-level directory. import ctypes import struct -UINTPTR_T = gdb.lookup_type("uintptr_t") +try: + UINTPTR_T = gdb.lookup_type("uintptr_t") +except Exception as inst: + raise gdb.GdbError("Symbols must be loaded prior to sourcing dump-guest-memory.\n" + "Symbols may be loaded by first 'attach'ing a QEMU process id or by 'load'ing a QEMU binary.")> TARGET_PAGE_SIZE = 0x1000 TARGET_PAGE_MASK = 0xFFFFFFFFFFFFF000
This series seems to have some coding style problems. See output below for more information:
Hi,
This series seems to have some coding style problems. See output below for more information:
Type: series
Message-id: [email protected]
Subject: [Qemu-devel] [PATCH] dump-guest-memory: more descriptive lookup_type failure
=== TEST SCRIPT BEGIN ===
#!/bin/bash
BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
commits="$(git log --format=%H --reverse $BASE..)" for c in $commits; do
echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
failed=1
echo
fi
n=$((n+1))done
exit $failed
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
* [new tag] patchew/[email protected] -> patchew/[email protected]
Switched to a new branch 'test'8dba220694 dump-guest-memory: more descriptive lookup_type failure
=== OUTPUT BEGIN ===
Checking PATCH 1/1: dump-guest-memory: more descriptive lookup_type failure...
WARNING: line over 80 characters
#34: FILE: scripts/dump-guest-memory.py:22:
+ raise gdb.GdbError("Symbols must be loaded prior to sourcing dump-guest-memory.\n"
ERROR: line over 90 characters
#35: FILE: scripts/dump-guest-memory.py:23:
+ "Symbols may be loaded by first 'attach'ing a QEMU process id or by 'load'ing a QEMU binary.")
total: 1 errors, 1 warnings, 12 lines checked
Your patch has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS.
=== OUTPUT END ===
Test command exited with code: 1
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to [email protected]
Laszlo Ersek
Reviewed-byQuoted 10 lines · On 03/14/18 15:24, [email protected] wrote:
Checking PATCH 1/1: dump-guest-memory: more descriptive
lookup_typefailure...
WARNING: line over 80 characters
#34: FILE:scripts/dump-guest-memory.py:22:
+ raise gdb.GdbError("Symbols must be loaded prior to sourcing dump-guest-memory.\n"ERROR: line over 90 characters
#35: FILE:scripts/dump-guest-memory.py:23:
+ "Symbols may be loaded by first 'attach'ing a QEMU process id or by 'load'ing a QEMU binary.")total: 1 errors, 1 warnings, 12 lines checked
The current "width" of the script is currently:
$ wc -L scripts/dump-guest-memory.py 81 scripts/dump-guest-memory.py
I think it would be good to stick with 80 chars in this patch. (While adhering to whatever Python idioms are considered necessary -- I think Janosch and Marc-André can help with that.)
Once that's fixed, please add my:
(And, I agree, this error message has been reported several times to me as well.)
Thanks!
Laszlo