From nobody Fri Nov 7 02:19:10 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; dkim=fail; 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=gmail.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1547022220473506.75049882471126; Wed, 9 Jan 2019 00:23:40 -0800 (PST) Received: from localhost ([127.0.0.1]:38631 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gh99H-0001Tr-Hh for importer@patchew.org; Wed, 09 Jan 2019 03:23:39 -0500 Received: from eggs.gnu.org ([209.51.188.92]:58527) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gh98N-0001B4-7B for qemu-devel@nongnu.org; Wed, 09 Jan 2019 03:22:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gh98M-0005pu-Fd for qemu-devel@nongnu.org; Wed, 09 Jan 2019 03:22:43 -0500 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:45206) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gh98M-0005pX-3p for qemu-devel@nongnu.org; Wed, 09 Jan 2019 03:22:42 -0500 Received: by mail-wr1-x441.google.com with SMTP id t6so6640695wrr.12 for ; Wed, 09 Jan 2019 00:22:41 -0800 (PST) Received: from linux.local ([82.166.99.178]) by smtp.gmail.com with ESMTPSA id 202sm15749453wmt.8.2019.01.09.00.22.37 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 09 Jan 2019 00:22:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=oLbrshlJGlKKO4FSekSUxYGKGmmFqc06/xWa47UDTL8=; b=ToW+eHKCx5Z7hFB3u7mr1ke+OJ3Gdmk6b5IPT+jaxjjME2YmVuSQBurrXNBSS8l25W iNosiIlHuuNZzAFV+Eq7wjWN6vjo11BeY3GK9WjubzOmkhTEyyyj+Ml2WsneEV4MaZX2 OA11KZ5ra1cyTFe29fWewsmR7m/byIVSPooBVrjk/ZNHH2uzJ9cdf1S3CD4IRlxNhdmX aYqAqHTGSz6xnITty8k5jQpEQmcxPCiEME4NFE0rxS3sFHJVqxUL/HdQrXWIXc6MFiq0 9sC1yB/CKeYhe/JVnwOlVhi4I+DJnLOqVCF0wOAfPFOb6E3WKzkVK62LrsHPgZdh90QK H8+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=oLbrshlJGlKKO4FSekSUxYGKGmmFqc06/xWa47UDTL8=; b=Ve77jcvhOuj2bsMd564W+vwDH2E5bVw73p/YwsnR08RC2QOvukWuHNCZHO1ymZjrUc /4U+VNkzOhwz6b60pUThvmgc7W9ifAV2lB0GTiMFa8tpLrDT5230t5/bHUbMnxeCGuui l+jBj1kQuovaKJXYqPOz6iToNXgd3zp5FeTwcVNOtmSBbinG/tDd+UxEDu1oyTsW8dxe 6eF6MJIoLguyld+4i863BoCFbaprclLkOcOS2zPTAO+vQPkLvhs61A0sC5uSuO8Qv5VK t5LPGkDYzW9cKwxGgR7ss1G1PxbX0b7KzO/E18d85b0SIrFQTJgy8P0/qccfpkfKRGdL 0dDg== X-Gm-Message-State: AJcUukft6GE8UV1P9twnZ4kynBkrg66Qln8ml3icv1qFg+7gKVNojWfS chKo9YihsN29ICroox5gLIkc/jw4 X-Google-Smtp-Source: ALg8bN5gMeP10XlIYBPFCb5KtGfBUWJQY32X387QBPyZxBZulHitft74T2WnRyH5hFTeROAfmthtwA== X-Received: by 2002:a05:6000:12c4:: with SMTP id l4mr3974216wrx.134.1547022159686; Wed, 09 Jan 2019 00:22:39 -0800 (PST) From: Jon Doron To: qemu-devel@nongnu.org Date: Wed, 9 Jan 2019 10:22:03 +0200 Message-Id: <20190109082203.27142-1-arilou@gmail.com> X-Mailer: git-send-email 2.19.2 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::441 Subject: [Qemu-devel] [PATCH v3] 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: marcandre.lureau@redhat.com, lersek@redhat.com, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" 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 Acked-by: Laszlo Ersek Reviewed-by: Marc-Andr=C3=A9 Lureau Tested-by: Marc-Andr=C3=A9 Lureau --- dump.c | 5 +++-- scripts/dump-guest-memory.py | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/dump.c b/dump.c index 4ec94c5e25..de7f70f099 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 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) --=20 2.19.2