From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id E8JYCU+4dGplqQ0AWB0awg (envelope-from ) for ; Thu, 06 Aug 2026 12:37:35 -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=lsGI+UqW; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id E05341E09B; Thu, 06 Aug 2026 12:37:34 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.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 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 CA7FA1E09B for ; Thu, 06 Aug 2026 12:37:32 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9111C4BB3BF1 for ; Thu, 6 Aug 2026 16:37:25 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9111C4BB3BF1 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=lsGI+UqW Received: from sonic302-20.consmr.mail.ir2.yahoo.com (sonic302-20.consmr.mail.ir2.yahoo.com [87.248.110.83]) by sourceware.org (Postfix) with ESMTPS id 76CCE4BA23DD for ; Thu, 6 Aug 2026 16:36:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 76CCE4BA23DD 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 76CCE4BA23DD Authentication-Results: sourceware.org; arc=none smtp.remote-ip=87.248.110.83 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1786034219; cv=none; b=OwfwxYYPDZcpc8fJVrZcf1P0vO4DUJ6lRjghenn13qc9SvOI9e9uA0VyfCgrMjr8MX/3O2Wa3mgENyghrHJi1DNP4NtjkR5nprJojhORMR9fxyKMGEe9gTWfe9zpCP+0lvV9u1YWAIUFtN518+cMqJOIPoKIMKttg70LkDMCq44= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1786034219; c=relaxed/simple; bh=L/m8V2oFx/HkJmLsyi0pboHG2N/1HZ/blpuGHJy0QHA=; h=DKIM-Signature:Date:From:To:Message-ID:Subject:MIME-Version; b=txkT7GxTVrX3DzH3obTMftE2qqj9ZBgXhUrjQ/iI5ZX4jnjQ9rPhktBkc6VlxJaccYk9JO/W30m92QstxKybtYskfQXxgWPExHA5yZ4oJ6Yz0MOfl7rbNgqwiYCXGusiulPxsFmcDH0Scx8lz+aYa1AYXdBH5IMvavuH5L8Hi1g= 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=lsGI+UqW DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 76CCE4BA23DD DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1786034214; bh=L/m8V2oFx/HkJmLsyi0pboHG2N/1HZ/blpuGHJy0QHA=; h=Date:From:To:In-Reply-To:References:Subject:From:Subject:Reply-To; b=lsGI+UqWE2/aaGA5brSO5h/3VLwSJBnh09Rrik2fpCSPSYWA28zlzqrMzAXHYffmV2h6bhHe7yfu5y1erJscaRyezijUMu/9drw2kNQLq4GmXSs/YwHjTBYKxEu2eOqN8gfAVtidHgwjL6SYCWA9b8q7Ynq830gRDLjbW1bhxZd7EP5rsGeb64GaYW3mne88HNg2MHZaKQ/e+A0xH8iViJk4xeTgy0SmfAaDLBTZUzNia3m47dWGFLWPn4N8/27Pq7X0z2ttYORkpRbh6rQ4VR1XVCfo6xBE0B5lSXazt0UVOrDg8j/jW7UdlOsAez23rjrdbTMh8zRQaAFfCFud1g== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1786034214; bh=wnzjfi0mK16SQggIVhQBdClF0L7FGvIVaXVG3NDjKj7=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=pF7Hkh49fYgLd4RDL1IuFWYxcsdMung/iKMOq7wdtEVMe1IcQqnVOWXMrk5AHyJUb2S+unEBewaeMXOts4FTk8UNlel7kTNnQxp4I/micVoXxgj3E7ZpdDLPFvNsKvS6cH2n3EMhfZGghGpcRfyFLlPjuppGG4Sa64TqKqSW+W6f/sa0cnYNQylurDYhXd1Z8XKSadqtpw5vQ19qLGEskLpti6dsYrJCqq1++HKauecwEykbCXBS62fTC6Mfx4bOJA4pDpfnzm+KRb9AXpTF06ImFMjRV0tNbJr0YiFrLeaZGhNdyPB0CSbtLCguU+uQS/uhZ4VqfHsupBcyg/3Klw== X-YMail-OSG: Y5MQdL0VM1n0CjBRHggFtp8uW7PJVk4T6IRdMg6k4i21imtGbMZLjpvF_23he4G sivqDfWRRteo3HJzpZoIQMoLbG1ibEJUc8AKgNRnyd7Tgtsmgu2jUKiWAP0dDtePL9_d4J1LNmCI u7zGOFsya9oISyO9AWgTy7X4CB_aWRyZX1sEhuaN3d0hiM5bSnsm1jDcOL4qP1hiBhiGiE4rG60H _YCAUekbrsaVj_rPB4rOohZihy75sdKELVZ_wlXdj9YOFrXvSwzw4vgSUPd9PXMHYgcYY.H9DogA Rfnwjsf8KoouujRm36uhVhKN0cIhbzrr5Fm63zW9BsLrwg4y5MFRocWKwOvtKcYLGvozIvLUxWSf YboG0OOvwvxKl0FpgYmcbqiQ4xSJgTsI6c815PNDloYlGekBzUWsNwJfdfQ7mKhWQDmKVak7nsZJ 9ylSEEPv5Dm1PP18SqGLowxqVfJo.KdQ1lpEdMi9dHrgSbZMr_zgxVI68UU_3JXZMMfHHYDlKDKB PLtVOYx_WJQyXmsOATsj4BTCZ_nKvYuKK4t_xXcY0WKPZqi.XBIdFOg.nBEFmyDBMa6vwONbtWCE FCBMLbbyz8HlsgC3XkMQ_OcAtWAa1SA6Mz8qL6adoSMVbpQyKENGVrZ2FoK0TTVn2tP_DHXbiA.7 syud.oQLyg.WXvlIK09_0BrTzSswWAV6N7M0QipmJh8r8ESVH9SfT2kO7xTicop1oBIncLgsXTJH xqdrj1129BVA8NoTWVs.GwYLiq8c0Pi_OQIKMpyhy58qj7Qm0r2meEkuZt0DhSiHC.FEatJkCxQW _IjbadRbZTV2fP89MRqRPbdlprbKhVf0KfIqLS68rZrpa3qQbwfX6zLO4n8egM7FRQuS8k99Ec8B BrBDNqgWRwLoWNVYtJoATVIRwk0VFh1qHMNf8hbNDbdPTNcpfrmPgaJJNQp1HVbSQUTH4biVk.NO 8TJJX.mk5LFm89RqdabOTAM6bDOutwk9QrFDvHt4skTYmYhRS5cBZeadFY1ILMCi4w8KensvtLsx VoUXfgnAwpMd_s4WKirjNsYqSHWmVxoENLTtFPv8Z0mhCuk5XVk0dO6MclHyrb7jI9qKTkuGI5fJ w8XJDQ5E9SSdxo.KxCfOfn05koxur0uBOkhLfOeuUw72smrEc6.j4xcyRlOTjF.zQA_z20JWNyWp ACdJcbWanqCGzf67FCUARBnUmOWNz9.BvDIOmA7Xo1IvyOEYSa6kcnpCf4_UQJ.NyEE2lun3bIDh E9M6COgonAsb4Qzsw8AdXhaYn3.wXXDjtMQDJdyyIMgx6D_YcQ94ydfYLW77gwoHdKsIdWAuKujr ZDiDtF5bJe_V7hOYpGGWdXEnf.XZWTktk3qV2BpxUqd.KaTR3Mp4fj_0dV3Zg8PGp7PzfZqyFAh. jjQdSKRnnAR6WykLeoogLAIjTG.nXZGKbPKqUo_7xMTfSMekMyBBywcdTs4yj.Hs.Su1IPRI0Ro5 M9TQ20DvWO0nMc39sfnVbnPBqmPMEddMDPIOb7QWQQThu0SDDyFpUmIMpkjtDwTSpFJFDB05A73e ueWtIWALBa._JnsJu9yZ.KCtXqZ56ipWe3g34E5Es6H.8i1hDj44j0cou.ebhc7Cnz78tUKxjsG1 kBlvl72_DBVyEuj7t.TJoui9f1LrVuhk.8Qlx1mV32Lol0uNHQJvv7hXVHtTShT0tixeFnzFECtm WuamFsBJQ2_oWP_Lzce_XPeyIQ0VZrzniKlaqbym9ikKoHNlQNElAZ8DFeGFg5AFrMHDnbqLoarh JYEBUNOMEZNAxTPuER_K9MUAMMrF4k6p09cPZkojoIWU8ljxO8HSyeWaT1ivv.trJ0W7MF7bfoFI 3VgC70ie2a7DHnlYvQ38HCwIYJ1Ol9JrKw9JaVE_BGI2z2H5EeSl2eLT51coTdP9T24ECyDgmXJW b8TWsfGnLebj4Cn.QHMDG7.Q_RFQ2900Hxv.zE9kpzF83DOyC70fn730lvc1q2HpRIv3M8TLD1eW gBdwWMXoNQqAi8qijJ4Cdbl8PeNOiqjq5yu9WPyixBeVfwqvsZjII1QOxdyHfTPUz5d8jnwayxsB u_Zd0jjIBc547y9sRF_1pDJ6byZ25KoXnw0VoaLjhhtUBn3zjH5Nh3tFWxdwDmdeQMreRebLr1TQ 7U7dZYPejG0QfNpAwpc8KGH4dve_31AjqR4RO.j_.4_RLY4F0S_XZ_wftgdtZm5sFX8zrJpcDkwl vdVrEEXOzkIBzTKkSCv10r6Bosef53q1Is7.rcstGEKXEsTVK6sB3 X-Sonic-MF: X-Sonic-ID: 46f33c2a-8e34-4c09-a437-d4d797987601 Received: from sonic.gate.mail.ne1.yahoo.com by sonic302.consmr.mail.ir2.yahoo.com with HTTP; Thu, 6 Aug 2026 16:36:54 +0000 Date: Thu, 6 Aug 2026 16:36:54 +0000 (UTC) From: Hannes Domani To: "gdb-patches@sourceware.org" , Pedro Alves Message-ID: <566279003.330296.1786034214088@mail.yahoo.com> In-Reply-To: <20260722153353.429342-1-ssbssa@yahoo.de> References: <20260722153353.429342-1-ssbssa.ref@yahoo.de> <20260722153353.429342-1-ssbssa@yahoo.de> Subject: Re: [PATCH v2] Windows gdb: Fix resetting of the debug-registers bit in ContextFlags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Mailer: WebService/1.1.26254 YMailNorrin 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 Ping. Am Mittwoch, 22. Juli 2026 um 17:34:52 MESZ hat Hannes Domani Folgendes geschrieben: > The CONTEXT_DEBUG_REGISTERS also includes the arch-specific bit > (CONTEXT_i386 or CONTEXT_AMD64) which is included in all CONTEXT_* > defines. >=C2=A0 > So this basically just checks if any CONTEXT_* define is set: >=C2=A0 =C2=A0if ((context->ContextFlags & CONTEXT_DEBUG_REGISTERS) !=3D 0) >=C2=A0 > And similarly, unsetting CONTEXT_DEBUG_REGISTERS removes the > arch-specific bit as well. >=C2=A0 > This isn't a problem per-se, since Windows seems to just ignore the > arch-specific bit anyways in SetThreadContext. > But it also creates inconsistent behavior for WOW64, because it uses > the wrong arch-specific bit there. >=C2=A0 > So this creates a CONTEXT_DEBUG_REG_FLAG define with just the > debug-registers bit, and uses it in these problematic locations. > --- > v2: >=C2=A0 =C2=A0- updated commit message >=C2=A0 =C2=A0- changed CONTEXT_DEBUG_REG_FLAG define to avoid hardcoded nu= mber > --- > gdb/x86-windows-nat.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) >=C2=A0 > diff --git a/gdb/x86-windows-nat.c b/gdb/x86-windows-nat.c > index 27adeb1f154..2f556e47b39 100644 > --- a/gdb/x86-windows-nat.c > +++ b/gdb/x86-windows-nat.c > @@ -42,6 +42,10 @@ enum >=C2=A0 > #define DR6_CLEAR_VALUE 0xffff0ff0 >=C2=A0 > +/* The CONTEXT_DEBUG_REGISTERS define without the arch-specific bit > +=C2=A0 (CONTEXT_i386 or CONTEXT_AMD64).=C2=A0 */ > +#define CONTEXT_DEBUG_REG_FLAG (CONTEXT_DEBUG_REGISTERS & ~CONTEXT_CONTR= OL) > + > struct x86_windows_per_inferior : public windows_per_inferior > { >=C2=A0 =C2=A0/* The function to use in order to determine whether a regist= er is > @@ -142,7 +146,7 @@ x86_windows_nat_target::thread_context_continue (wind= ows_thread_info *th, >=C2=A0 =C2=A0 =C2=A0{ >=C2=A0 =C2=A0 =C2=A0 =C2=A0windows_process->fill_thread_context (th); >=C2=A0 > -=C2=A0 =C2=A0 =C2=A0 gdb_assert ((context->ContextFlags & CONTEXT_DEBUG_= REGISTERS) !=3D 0); > +=C2=A0 =C2=A0 =C2=A0 gdb_assert ((context->ContextFlags & CONTEXT_DEBUG_= REG_FLAG) !=3D 0); >=C2=A0 >=C2=A0 =C2=A0 =C2=A0 =C2=A0/* Check whether the thread has Dr6 set indicat= ing a >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0watchpoint hit, and we haven't seen the = watchpoint event > @@ -173,13 +177,13 @@ x86_windows_nat_target::thread_context_continue (wi= ndows_thread_info *th, >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0update the debug registers= later when the thread >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0is re-resumed by the core = after the watchpoint >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0event.=C2=A0 */ > -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 context->ContextFlags &=3D ~CONTEXT_D= EBUG_REGISTERS; > +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 context->ContextFlags &=3D ~CONTEXT_D= EBUG_REG_FLAG; >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} >=C2=A0 =C2=A0 =C2=A0 =C2=A0else >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0DEBUG_EVENTS ("0x%x has no dr6 set", th-= >tid); >=C2=A0 > -=C2=A0 =C2=A0 =C2=A0 if ((context->ContextFlags & CONTEXT_DEBUG_REGISTER= S) !=3D 0) > +=C2=A0 =C2=A0 =C2=A0 if ((context->ContextFlags & CONTEXT_DEBUG_REG_FLAG= ) !=3D 0) >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0{ >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0DEBUG_EVENTS ("0x%x changing dreg= s", th->tid); >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0context->Dr0 =3D state->dr_mirror= [0]; > --=C2=A0 > 2.54.0