Blame SOURCES/kvm-dump-guest-memory.py-fix-No-symbol-vmcoreinfo_find.patch

9bac43
From af7952afccf368763122322931a603bfd4443471 Mon Sep 17 00:00:00 2001
9bac43
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
9bac43
Date: Tue, 5 Dec 2017 14:29:30 +0100
9bac43
Subject: [PATCH 18/21] dump-guest-memory.py: fix No symbol "vmcoreinfo_find"
9bac43
MIME-Version: 1.0
9bac43
Content-Type: text/plain; charset=UTF-8
9bac43
Content-Transfer-Encoding: 8bit
9bac43
9bac43
RH-Author: Marc-André Lureau <marcandre.lureau@redhat.com>
9bac43
Message-id: <20171205142930.5499-1-marcandre.lureau@redhat.com>
9bac43
Patchwork-id: 78143
9bac43
O-Subject: [RHV7.5 qemu-kvm-rhev PATCH] dump-guest-memory.py: fix No symbol "vmcoreinfo_find"
9bac43
Bugzilla: 1398633
9bac43
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
9bac43
RH-Acked-by: Michael S. Tsirkin <mst@redhat.com>
9bac43
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
9bac43
9bac43
When qemu is compiled without debug, the dump gdb python script can fail with:
9bac43
9bac43
Error occurred in Python command: No symbol "vmcoreinfo_find" in current context.
9bac43
9bac43
Because vmcoreinfo_find() is inlined and not exported.
9bac43
9bac43
Use the underlying object_resolve_path_type() to get the instance instead.
9bac43
9bac43
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
9bac43
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
9bac43
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
9bac43
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
9bac43
9bac43
(cherry picked from commit d36d0a9d152316a41e02c2613a71f5859f407da1)
9bac43
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
9bac43
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
9bac43
---
9bac43
 scripts/dump-guest-memory.py | 12 +++++++-----
9bac43
 1 file changed, 7 insertions(+), 5 deletions(-)
9bac43
9bac43
diff --git a/scripts/dump-guest-memory.py b/scripts/dump-guest-memory.py
9bac43
index 69dd5ef..1af26c1 100644
9bac43
--- a/scripts/dump-guest-memory.py
9bac43
+++ b/scripts/dump-guest-memory.py
9bac43
@@ -546,13 +546,15 @@ shape and this command should mostly work."""
9bac43
         return None
9bac43
 
9bac43
     def add_vmcoreinfo(self):
9bac43
-        if not gdb.parse_and_eval("vmcoreinfo_find()") \
9bac43
-           or not gdb.parse_and_eval("vmcoreinfo_find()->has_vmcoreinfo"):
9bac43
+        vmci = '(VMCoreInfoState *)' + \
9bac43
+               'object_resolve_path_type("", "vmcoreinfo", 0)'
9bac43
+        if not gdb.parse_and_eval("%s" % vmci) \
9bac43
+           or not gdb.parse_and_eval("(%s)->has_vmcoreinfo" % vmci):
9bac43
             return
9bac43
 
9bac43
-        fmt = gdb.parse_and_eval("vmcoreinfo_find()->vmcoreinfo.guest_format")
9bac43
-        addr = gdb.parse_and_eval("vmcoreinfo_find()->vmcoreinfo.paddr")
9bac43
-        size = gdb.parse_and_eval("vmcoreinfo_find()->vmcoreinfo.size")
9bac43
+        fmt = gdb.parse_and_eval("(%s)->vmcoreinfo.guest_format" % vmci)
9bac43
+        addr = gdb.parse_and_eval("(%s)->vmcoreinfo.paddr" % vmci)
9bac43
+        size = gdb.parse_and_eval("(%s)->vmcoreinfo.size" % vmci)
9bac43
 
9bac43
         fmt = le16_to_cpu(fmt)
9bac43
         addr = le64_to_cpu(addr)
9bac43
-- 
9bac43
1.8.3.1
9bac43