From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id aUQbM9QnvWpG7h4AWB0awg (envelope-from ) for ; Wed, 30 Sep 2026 11:16:36 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=yahoo.de header.i=@yahoo.de header.a=rsa-sha256 header.s=s2048 header.b=Ij/JOIps; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id CA5591E051; Wed, 30 Sep 2026 11:16:36 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 3AD281E04E for ; Wed, 30 Sep 2026 11:16:35 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C0C7E4BB5882 for ; Wed, 30 Sep 2026 15:16:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C0C7E4BB5882 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=yahoo.de header.i=@yahoo.de header.a=rsa-sha256 header.s=s2048 header.b=Ij/JOIps Received: from sonic.asd.mail.yahoo.com (sonic-euwe4-0022.asd.mail.yahoo.com [34.2.86.21]) by sourceware.org (Postfix) with ESMTPS id 5282E4BB3BD0 for ; Wed, 30 Sep 2026 15:14:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5282E4BB3BD0 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=yahoo.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=yahoo.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 5282E4BB3BD0 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=34.2.86.21 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1790781264; cv=none; b=TDKIWu66EXBjc3/eNcBQ4qUi09ros+Vxz0ZSMFOOgr3xrVpNHXFb2i+bdZl2YkNbHHdBElqxNmQoyhnN1ZXdFOSvaciSPYpmlTZptPsFYzY80sOfoVofMp7ct6/gi6PndlDRdFEg0RYKuSHqELRLFhUCp6qWnnhCwZE/Kn0tD4M= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1790781264; c=relaxed/simple; bh=4BGB32a4ILlDJHFkRPWJBT+PDs8L+jWJ3Ch/o3zoeRo=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=QidSbcGJcNMBFrpZxICCT85uzzeDz4O8vocq5kHG8iGhgsukuBGFFJwBG0s9zbcvTa6CmMqhQ4v7x4vrP7gGXum9+Yq1/JFfKTtjlGKD4eEBpw173N3Stk9cgYt/aTW7OkB3ob1md18vBZR349yN1PuiAwB9hoaCrTgTnJVzEwk= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=yahoo.de header.i=@yahoo.de header.a=rsa-sha256 header.s=s2048 header.b=Ij/JOIps DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5282E4BB3BD0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1790781259; bh=EcyT+xmLNT0TT+oDox73eIKmGyT4spVokXmWnbfGRCU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=Ij/JOIpskH7FLy8GCRBfw/79pbEMggGJaE/VZV9TO+4iMyLscyERSOGfPWMazczOxrwqlIUjJ7oxMf7i03Zs5bZzAwrr4e6hxnQ3g3iwcnxa5T87eo0OmBuTHQkczQVN8376PNZEM0YLsfFa8/gfxj9Yhyht1YTppKdv3TvnX2AdlRwomu+wHdM6rvzT3Yp2v3kVj77pEh3kyiyEjoKqWlT4c62Zfp6btTHCOw2R2CocWZ0k9PpOGPJ9f/aWUdNqDxITrxxiGbTuSkoXRW13/xTYPGfBukWx2hO8WpMAgmvDI48MQ3CYE0d5aWtPaVKCExBFvpcBETTXp+EuNyibZg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1790781259; bh=Z12n/c6ac87yCwF0Wtowk528DY1msZT34fb2UQuhUhF=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=cqdXPJa2fRmYkphEbmyAJ74MVlp0BI43SRhFr85eBXkpnIhD7VkAYXt16zRmXkZzLOhgUw121VF9N9FTZ8HCp7Wm9B5/sIJ7Gd6Sc1HseXX7TjDNZkph++MozyfFdkpwt64QZkzvkutk8dFPNLcSXgwMvWcv0M8KoKadZFFUTbyuR2f76iONeFPkJD+/cL5dBDqczlzzWRa2GzL2VKKlVGUfM+o151rHfqAg+UKXPgCBtjX8CP5SI1IzHVOkS8eQXVYDHFaQQoHn8r4GLmdx6KB+Ly68e5IotI+NBBxnQSinbosfLZpVjOqjuvwpCnF/iGcHHiLgJRYGZDjivSXp0g== X-YMail-OSG: Xkg4JWkVM1nMSWB7rzy5P3LjQMhlvjin1YA.ytJkft.hpdKKDVgbo6jnFoyPqrr hHWtY9RpcEYYsuAD1dXValO4ZpOB3K5YE9X0R4GSRzBwG92Xfe0vV2iaNUqri4RVSRRnWOYzMz6s MCQwBW4Y8W6Bk1rBvMLyXxyLs4uzX7flRi68Va10cbwb8BLfcv1IJEmFfoBvhzLKLUdARbyA87JJ ommvHUMD0w.M0cq9wVuwsBVb2XZNh2B.456uG0.FEXo2HSt2uW91mrmBDIZPqJ7tP0IuVYGi.5mH dc8FU84r78asATqL_Ze0QeKoZcRVFt9VqgTK6x5OHOZJAl.YheWV.O4owjKpDrMQXT7GeunhgIM7 .83KE2DWeaxiEHhiMbe0whU.houEJT_BOKoHRsuZEZ7h1pQSGXfBXaXf0ieYy_b0vnHmJAqjsues Kw57XIoVlPHhfUjERL9vTcdm3aY6q8xJE6xYR4lRmOrnMSqYv9Is0ubmJ5EKoGWC1ZZDgb_j578z c006tT2dw1a1uhXDCFSXTbqAcYHCctAGBRJlmIKgsOAkmPw8WGI4aWg5zF2GPZZG9zLk6faImVtJ hhkxKwUS4SMxGqE9_S1t3Bp94SO8LpQs2vMtSXbaPbV2JlvhCLvlgxz8O6k0OSwnjA7ciFvZt81l 8O1a_zCEkycnPwiMGmhFrVkl6ZZBXGAK8_aBv6eJthTuY_Oga8zDM3I7yuB4y2rBHcILSL32xgRa NreUkx1XDxX54.wkIi31MWRYf4lXjCnjkZ7gc5YQ2lIm8y7CeF265FojXWMVucGDsmp.0f7lkkWB SQ48mD3zNamLGy6k2gxvNSReQrNbyQWMZMWXzh797Q84JRv2uDI1rqFUd1kexqbqCUPvREjd0iQ5 TJMdcVCAUEJ7JYXDcxZEKerFrSnPgF3u.anGEP4zUZXo5Rx8d01RPMGNmp7_98fU7UpAhcSFwn.s X47TK7GxliEXig8HjDYkeimGXkhOsVCI6Z3ADFBrI0LqpKK5OQ26RAqzY7tno6gqInxMuCkZBdSZ hll78M0vLe2slBjEl36E8jC9pl4UGZFl4LhGGhcfDxdNAD0.fl.yqmHxxhq9VLn2fxUQmgaGnwuw 2ZoADk6UR9fRuslVx9B953DV9cvJ3aGNXMVXVhxrU2J622ZfyfPsOduqm.WTMBcGQRfebVvqKmie g3qNcKq1mOZTo0oNcMD2LJuTFgnseqQWvK4LiwbVYu7Ic_gFmagDsqoykGeI4lHJfLq4jSVJWa4p yznNBuexqt2oBMmcjw1zBwMgopThtWwKcz_fJxkR_FUE5NhnZ__YjCTQH0Ep.DlbVnfFupfSZ4T7 0y.fB5ePiCCSZT.bdlgHOSOm_dCxCpoqfkh68lABGRg0Yq.bBOPKhWlVIdNrHnkTwhwyWgLLuz_e 2NDKuD8q3TFiEjpHwSiy9_knvSRyx4AloDUrwaVZChw8CustTXe0ntH7L8L.lcwL_kVDNYZvczHN ZAqLXM_aRo7t9RMGa9YUU3nQDl0ASe10_gl0s.AYAYL_zYxKSeQaQed2vUAHxAxZlz8r9MziqRQ6 xnxb6U7mOVccbtSxLZcgQD1TsCHsmdMG0Xd0gJRki0lJdQ.Bs0QxLm_kN3dahp2ZNcG504rCvZx_ sU8s65s6U_UIZwfCh5MX6nY8tUUT7f_ib2wKlKOS.9RCSUcBz42CkSYusL0LiAVIiQDcCaACbg63 NKrNyW5gyz6t86Coy1odI2.uPY_cXq86yJnGY6QbUmQJk1rB4bThXS9CzlkWeBYORrExAL29pDGt _NhHpcv0Rg5QpEzXqE5odzHwboCxDtErulWhuM9ftGEcH52eOyWq1IhJxW5w5xVHMYsiseE37_Go Hs2jp588r_DF7AvqyLIRz9.tQsRXvubbmBNiDDa2wy8dN5uK.lEK1p6bCVloIESq6wInrBIXbXLq DRaMUISRxKppG5aJ69nMzbSoey6FhZ51DYmHnoZoP4GGgx2hMfvZoYiIZZ.gbgP0zU8prwP62xwR znLJOrjeKoQn4_d3OEqk6 X-Sonic-MF: X-Sonic-ID: 6a999e73-e3b4-4096-a8ea-93e16124a606 Received: from sonic.gate.mail.ne1.yahoo.com by mail-asdoutdeli-p-cin-euwe4-prod-sonicconsumer-svc-101 with HTTP; Wed, 30 Sep 2026 15:14:19 +0000 Received: from dip115.lsn.ir2.yahoo.com ([87.248.99.124]) by hello (SMTP) with SMTP ID 15744020acab95e3749a115a097d285b; Wed, 30 Sep 2026 15:14:14 +0000 (UTC) From: Hannes Domani To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH v4 3/9] Windows gdb: Remove mappings member from windows_per_inferior Date: Wed, 30 Sep 2026 17:11:37 +0200 Message-ID: <20260930151403.774660-3-ssbssa@yahoo.de> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260930151403.774660-1-ssbssa@yahoo.de> References: <20260930151403.774660-1-ssbssa@yahoo.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org It's not really that useful, and simplifies later XState changes. Approved-By: Tom Tromey --- v3: no changes v4: no changes --- gdb/aarch64-windows-nat.c | 6 ++---- gdb/windows-nat.h | 18 ------------------ gdb/x86-windows-nat.c | 34 ++++++++++++++++++++++------------ 3 files changed, 24 insertions(+), 34 deletions(-) diff --git a/gdb/aarch64-windows-nat.c b/gdb/aarch64-windows-nat.c index 630704a8caf..be900439047 100644 --- a/gdb/aarch64-windows-nat.c +++ b/gdb/aarch64-windows-nat.c @@ -168,8 +168,6 @@ aarch64_windows_nat_target::initialize_windows_arch (bool attaching) { memset (&aarch64_windows_process.dr_state, 0, sizeof (aarch64_windows_process.dr_state)); - - aarch64_windows_process.mappings = aarch64_mappings; } /* See windows-nat.h. */ @@ -264,7 +262,7 @@ aarch64_windows_nat_target::fetch_one_register (struct regcache *regcache, gdb_assert (r >= 0); char *context_ptr = (char *) th->context; - char *context_offset = context_ptr + aarch64_windows_process.mappings[r]; + char *context_offset = context_ptr + aarch64_mappings[r]; struct gdbarch *gdbarch = regcache->arch (); gdb_assert (!gdbarch_read_pc_p (gdbarch)); @@ -296,7 +294,7 @@ aarch64_windows_nat_target::store_one_register (const struct regcache *regcache, char *context_ptr = (char *) th->context; - regcache->raw_collect (r, context_ptr + aarch64_windows_process.mappings[r]); + regcache->raw_collect (r, context_ptr + aarch64_mappings[r]); } /* See windows-nat.h. */ diff --git a/gdb/windows-nat.h b/gdb/windows-nat.h index 77834db1388..e0e147856fb 100644 --- a/gdb/windows-nat.h +++ b/gdb/windows-nat.h @@ -142,24 +142,6 @@ struct windows_per_inferior : public windows_nat::windows_process_info void *wow64_dbgbreak = nullptr; #endif - /* This vector maps GDB's idea of a register's number into an offset - in the windows exception context vector. - - It also contains the bit mask needed to load the register in question. - - The contents of this table can only be computed by the units - that provide CPU-specific support for Windows native debugging. - - One day we could read a reg, we could inspect the context we - already have loaded, if it doesn't have the bit set that we need, - we read that set of registers in using GetThreadContext. If the - context already contains what we need, we just unpack it. Then to - write a register, first we have to ensure that the context contains - the other regs of the group, and then we copy the info in and set - out bit. */ - - const int *mappings = nullptr; - std::vector solibs; #ifdef __CYGWIN__ diff --git a/gdb/x86-windows-nat.c b/gdb/x86-windows-nat.c index 2f556e47b39..b3ad8594020 100644 --- a/gdb/x86-windows-nat.c +++ b/gdb/x86-windows-nat.c @@ -85,16 +85,10 @@ x86_windows_nat_target::initialize_windows_arch (bool attaching) = !attaching && x86_windows_process.wow64_process; if (!x86_windows_process.wow64_process) - { - x86_windows_process.mappings = amd64_mappings; - x86_windows_process.segment_register_p = amd64_windows_segment_register_p; - } + x86_windows_process.segment_register_p = amd64_windows_segment_register_p; else #endif - { - x86_windows_process.mappings = i386_mappings; - x86_windows_process.segment_register_p = i386_windows_segment_register_p; - } + x86_windows_process.segment_register_p = i386_windows_segment_register_p; } /* See windows-nat.h. */ @@ -242,7 +236,15 @@ x86_windows_nat_target::fetch_one_register (struct regcache *regcache, return (char *) context; }); - char *context_offset = context_ptr + x86_windows_process.mappings[r]; + const int *mappings; +#ifdef __x86_64__ + if (!x86_windows_process.wow64_process) + mappings = amd64_mappings; + else +#endif + mappings = i386_mappings; + + char *context_offset = context_ptr + mappings[r]; struct gdbarch *gdbarch = regcache->arch (); i386_gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); @@ -308,6 +310,14 @@ x86_windows_nat_target::store_one_register (const struct regcache *regcache, return (char *) context; }); + const int *mappings; +#ifdef __x86_64__ + if (!x86_windows_process.wow64_process) + mappings = amd64_mappings; + else +#endif + mappings = i386_mappings; + struct gdbarch *gdbarch = regcache->arch (); i386_gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); @@ -319,7 +329,7 @@ x86_windows_nat_target::store_one_register (const struct regcache *regcache, { gdb_byte bytes[4]; regcache->raw_collect (r, bytes); - memcpy (context_ptr + x86_windows_process.mappings[r], bytes, 2); + memcpy (context_ptr + mappings[r], bytes, 2); } else if (r == I387_FOP_REGNUM (tdep)) { @@ -328,10 +338,10 @@ x86_windows_nat_target::store_one_register (const struct regcache *regcache, /* The value of FOP occupies the top two bytes in the context, so write the two low-order bytes from the cache into the appropriate spot. */ - memcpy (context_ptr + x86_windows_process.mappings[r] + 2, bytes, 2); + memcpy (context_ptr + mappings[r] + 2, bytes, 2); } else - regcache->raw_collect (r, context_ptr + x86_windows_process.mappings[r]); + regcache->raw_collect (r, context_ptr + mappings[r]); } /* See windows-nat.h. */ -- 2.55.0