From nobody Sat Nov 8 03:36:00 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1549465208504299.98432823728774; Wed, 6 Feb 2019 07:00:08 -0800 (PST) Received: from localhost ([127.0.0.1]:52210 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1grOgJ-0008Ge-IN for importer@patchew.org; Wed, 06 Feb 2019 10:00:07 -0500 Received: from eggs.gnu.org ([209.51.188.92]:50067) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1grOf2-0007TG-AF for qemu-devel@nongnu.org; Wed, 06 Feb 2019 09:58:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1grOex-0000Ap-DI for qemu-devel@nongnu.org; Wed, 06 Feb 2019 09:58:46 -0500 Received: from mx1.redhat.com ([209.132.183.28]:35792) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1grOex-00007r-27 for qemu-devel@nongnu.org; Wed, 06 Feb 2019 09:58:43 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 093483DBFE; Wed, 6 Feb 2019 14:58:42 +0000 (UTC) Received: from localhost (unknown [10.36.112.15]) by smtp.corp.redhat.com (Postfix) with ESMTP id AF58F100194A; Wed, 6 Feb 2019 14:58:37 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Wed, 6 Feb 2019 15:58:31 +0100 Message-Id: <20190206145831.656-2-marcandre.lureau@redhat.com> In-Reply-To: <20190206145831.656-1-marcandre.lureau@redhat.com> References: <20190206145831.656-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Wed, 06 Feb 2019 14:58:42 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 1/1] dump: Set correct vaddr for ELF dump X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Cleber Rosa , Jon Doron , Eduardo Habkost , peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Jon Doron vaddr needs to be equal to the paddr since the dump file represents the physical memory image. Without setting vaddr correctly, GDB would load all the different memory regions on top of each other to vaddr 0, thus making GDB showing the wrong memory data for a given address. Signed-off-by: Jon Doron Message-Id: <20190109082203.27142-1-arilou@gmail.com> Reviewed-by: Marc-Andr=C3=A9 Lureau Tested-by: Marc-Andr=C3=A9 Lureau Acked-by: Laszlo Ersek --- scripts/dump-guest-memory.py | 1 + dump.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/dump-guest-memory.py b/scripts/dump-guest-memory.py index 198cd0fe40..2c587cbefc 100644 --- a/scripts/dump-guest-memory.py +++ b/scripts/dump-guest-memory.py @@ -163,6 +163,7 @@ class ELF(object): phdr =3D get_arch_phdr(self.endianness, self.elfclass) phdr.p_type =3D p_type phdr.p_paddr =3D p_paddr + phdr.p_vaddr =3D p_paddr phdr.p_filesz =3D p_size phdr.p_memsz =3D p_size self.segments.append(phdr) diff --git a/dump.c b/dump.c index ef1d8025c9..107a67165a 100644 --- a/dump.c +++ b/dump.c @@ -192,7 +192,7 @@ static void write_elf64_load(DumpState *s, MemoryMappin= g *memory_mapping, phdr.p_paddr =3D cpu_to_dump64(s, memory_mapping->phys_addr); phdr.p_filesz =3D cpu_to_dump64(s, filesz); phdr.p_memsz =3D cpu_to_dump64(s, memory_mapping->length); - phdr.p_vaddr =3D cpu_to_dump64(s, memory_mapping->virt_addr); + phdr.p_vaddr =3D cpu_to_dump64(s, memory_mapping->virt_addr) ?: phdr.p= _paddr; =20 assert(memory_mapping->length >=3D filesz); =20 @@ -216,7 +216,8 @@ static void write_elf32_load(DumpState *s, MemoryMappin= g *memory_mapping, phdr.p_paddr =3D cpu_to_dump32(s, memory_mapping->phys_addr); phdr.p_filesz =3D cpu_to_dump32(s, filesz); phdr.p_memsz =3D cpu_to_dump32(s, memory_mapping->length); - phdr.p_vaddr =3D cpu_to_dump32(s, memory_mapping->virt_addr); + phdr.p_vaddr =3D + cpu_to_dump32(s, memory_mapping->virt_addr) ?: phdr.p_paddr; =20 assert(memory_mapping->length >=3D filesz); =20 --=20 2.20.1.98.gecbdaf0899