From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id UBvSMRXjYGr7xSUAWB0awg (envelope-from ) for ; Wed, 22 Jul 2026 11:34:45 -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=PJZPimWn; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 9F4E51E09E; Wed, 22 Jul 2026 11:34:45 -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 A05F31E033 for ; Wed, 22 Jul 2026 11:34:43 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1364E4BA2E2E for ; Wed, 22 Jul 2026 15:34:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1364E4BA2E2E 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=PJZPimWn Received: from sonic303-20.consmr.mail.ir2.yahoo.com (sonic303-20.consmr.mail.ir2.yahoo.com [77.238.178.201]) by sourceware.org (Postfix) with ESMTPS id A597D4BA2E0B for ; Wed, 22 Jul 2026 15:34:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A597D4BA2E0B 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 A597D4BA2E0B Authentication-Results: sourceware.org; arc=none smtp.remote-ip=77.238.178.201 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784734459; cv=none; b=dtfYp1bSC5dtfTb81yb9VMPWs27nrqq1VI8mDc/NwRsHVYfJDdyAldkVaqoNtgOp4h3I8X2vm4dlbGQdKO46CKgzByHoyZqGF+CuwrHg5NZhF11rgzDLAF5VPqTF9veukdkAqakOTIx/VH9t0aqtzAG4xv2zoYuD33YNdJBH7hA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784734459; c=relaxed/simple; bh=OqEFYiTlvwZNzMPk5RiBExL6kVL/eP7n4cALGx6Ybws=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=woEsHjq11I4YrFQ68q+NpY4NvTqK1/dvx/PWdyXpOU2r+nK+Vr6Y1U4apwUXpxQQBJ/zVLvwRiA5NZbJ9NgW0pfrK3YJgA3Ogr4TAbHADynu+OwIcGWqsvuyzTjTfxz8GlgKk0GNDU69RWwXf9EJyFRK+9mw+3j/8VjNVcEuqpk= 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=PJZPimWn DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A597D4BA2E0B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1784734456; bh=Q8aqZPrLG5kP5cZftvMhYlSY6X+8dAx3Jf1u5x9E4GE=; h=From:To:Subject:Date:References:From:Subject:Reply-To; b=PJZPimWnpuFf9hfTf0FeiC2TGV+2JuWIIr2Zy+TjydhlpEZpdmzkjzc8eGCv6sY6l/Bch1M7ZaLA2TSf3JtMcgQWwIfgvgWRM6N6nxmK0Q3/l4BUa5dnNZ6/l+KKo2OcXZ5upMew6jWM7YFaUnseFKn14VAQCSy+b1fq3EdLuWZAoZzMXzEJ2065aRnL8grygLuikzwuBQGH383ynQH+sInoI8GvlchH2XkOc4uCTtKX3FQzluQiXF0fyKdipR+W68i4kRwq8jE0j6Uz45D2lCydDaAQohOXY8GKY+f+IPgMzKl0Ve4ydNMaMdGaCpUiPiNLQD6lTmnUADArtLOgHg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1784734456; bh=JPIQ76E24gZKBq8SAHBdRLWnC7PMcY/GdVOlwKeItaz=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=Q3G9YP2wSIvBpiex58l+ZGtaIx+YoWP8a5yI5nJtWO5SvjpVkx/0QfEGUlRm7H71HAPEG7rSuiiNPWLipOBwQYW9BjXUxIclZZXH3nCxukqFrFIcex7DzpPjQBGSSltpbantNtypycPvMg0KENzSWSSi834kSLodFeTmwEBBHPhf7bl3iMBsXHoqmHrxxZbdMLhjF2IJmzlt/r6bzkGjOLpoOAZbZt/3qk8SOKzkhnVJ6yK7H8sxHORpM4+pwwf9efLJaX/c4S43FJNYUtvITHT9qDHV+s4Ulu89jrQcBj/0sK8nP3jK3kFmnz9hOikuJQ7xEjpwmDgkhhkf9TfsCA== X-YMail-OSG: bdLKRJUVM1kWaXs6Ec2sIETsKKws.w5PgViNRn7bcL9_43cfeh7djR0anrpNt4U kWuOP5SRnJJ6X3oaZ2Uq9USYvp9OvQN0TjlvKlyuYdmlWoIZULmI7qRU40l9QUl73ovxNV8c28av qndaub.K12Nwld48grDRLfdnwbmFkD_OQQHccpED_f8U1o6YiEtKJvNQxlD2MsMwvorUq_n8BnUO 5JP0PweYwQHUkojjH9FKrSSjNJ7dHKDhRz4vRRDspy_w_CL4_6sDDSr7CbQq.KsdfaqI5Vzhmz9U C84HjMJ_u.KU7rn1v4zFuHpsqbAx24aEKJ2fS6jjZ8lQ8TwvTPnm3k8QyClpOd7cnkXL1Qe4Tm9e soPOY5C1q6Pg3ZIobqVOP4gmNsAmT6cn1kpzfso9vFCbZAephs6vcsMRzocuF6zi4x_Bg0pvQU11 xnEQSO6XoVX1kz9ToSC49ualU8V143S72Ihsi_A3Uc6ZVX4W1tCRu.CJ0gB_u5QL81ccgqzub4Sh aAiOQSSIZVCiTgOwCY76rPSvJNDxw7QFMdel6HdVNWikEpxaCrEk8Neo4.I1CMIfEhc5enb0yq96 4SF.dVWnUrnooirQBg29EV4T70TOC0gMNI1iM7gCOIgyb8nzLQ7ubZtVoYuZ5CXpuKaLKIgiQVP9 g8LAHOGVTlPkqyAqNDLGrk.ArzqH.Ns6.7QsB7lHmnoEG5cvjc461uay5EY.iV5dfAneLtEb6t1B dzEBGyOWfm5Ug6ikrvi1jvOVauK47LjtYsbzT0cQDAcRDy6wrmvrXpN6KjCuQy92wMWya7Y2p5eT FJJRjCw2ee5f1Lb0MUmbK3VcYTadnlSwmQXGoVwQnE.DkpLvqd..hXYmUrH8b1zVdef4LjsiuUix 1K7uT7yrrP2l9i5jdwE8KiPFs.xSdKIVH7q3sUomE8NDVQqkQAPB61m0FMWM77YuRCTN0FrtbNG. SQtN3Ig7rMOOC0DiLk7FmMYlDMvKkacxbILFImIdbvZsmp80xy5HporQYjUGfTsJbQQ3e2qlDdKj M3WiOtZ9DEL7KF6Xhlw1jtwCMjEevL7UdJJjPAisMDp0fBKPJvsS0xdMBt8ou8p4efE1bP.up5KN rwu7rRawyfLYqpInYUFBzxml5e4jaHNj6Tm2nn3ovNpJMTUF4DdY9z81BsVNtc15AcFEUtmNcJjJ QhJA6hmZKEddNnzsJ4xWe_I0YrCAuMGJo8UDXpW1a5CrznJ4WAFnsEfb2WcDRKT0EatxDZczlYGS DCriLXwdqUKXdc6jfzNsGVaf7mljMdTJo6aq.tOmM3Gq4ZIqOPe5I2928EMf0XusxzUzl3AqcN.Z kVxWBS77VEgBugk1aEomWEBrlknyenDLR.z.baTdCnWXyejcmMHTfJaz8DWc_vMxU7OaLCSZRP9A 4fEuqFCLFBtSKAzE8lbX1lkmLueMYyFrAEhtTcDKlaCcSLS7GVntPyd60Q9YwoH5k9gO1uYACMg3 XKzwgWeWSpo4TNk7lP.VctCQh.Idfi7aMkrNbBi7G0UpJKnlRARSfWI5KKT79qu2RuApc1C4sx2t bPlvDC6xlTbvmcUpRm6Ir7T7XZeucsiBiVM1DGbt27jba_Q53XNT6JHVhXtlnwvSZPOWlEiIiSMR SrPi7cOF2eLYKGq4LQLDsb_0jMTy_4ohmYQDT1teqYOmPjgM5D4Y6.y4yHZPaTMm49XuQmURGAFT XZDSLVhxxNCk.Q9m8N5x2qUVzfMqLza0TeRyx4en_pZ1S5srPc5kN7cCa.NtB0OJMvJejRgdw9qJ B1wDDSt4rQ9T5k7yoATY1d4OL1GZm.PtpYYzDv33kRagDARL3Gv5jUtaYI2RTfm.bwyOo7KXbPR7 dFxyEonWP5OAjVJkua1wWo5sop0Qvay1h5yo1jbqpiAeBddwdC09qh2eyYCL13NljIlp_9TCJFM8 XRJaa3WWytZWhRae.UlLhXuoWs44bfyWHHyxYFfQsTO2JtiYM3rngwterGXlELLPS3OU8DdUpXSy M67x1_hog5lC2GVtasjFkOm2cly.QMIH4XBp_VwPjuMBLsy9ot259ozWm6d5dG4DGU4CYGzjhy0X iOSHGDY.rMTtyIIx4SlsuS6mufLn5QXJR1FVNSHbpGWSz918cwD5lV1CPCXgS_S5xv6Y_pLAM.4M fxaglwrQafZOryCxhvXpbjaTRZT2rOtk.DLFwMVdUCqnISx3RZ4c9F7bVFJLszJKz9jBkZ6bJrma emROviz4cvzdyKIM- X-Sonic-MF: X-Sonic-ID: 96822050-fd1b-47d3-a369-5bbed1622155 Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.ir2.yahoo.com with HTTP; Wed, 22 Jul 2026 15:34:16 +0000 Received: by hermes--production-ir2-676cb4d88b-txndk (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 6beba224edf1d09e1a77d5fdab813399; Wed, 22 Jul 2026 15:34:08 +0000 (UTC) From: Hannes Domani To: gdb-patches@sourceware.org Subject: [PATCH v2] Windows gdb: Fix resetting of the debug-registers bit in ContextFlags Date: Wed, 22 Jul 2026 17:32:48 +0200 Message-ID: <20260722153353.429342-1-ssbssa@yahoo.de> X-Mailer: git-send-email 2.54.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit References: <20260722153353.429342-1-ssbssa.ref@yahoo.de> 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 The CONTEXT_DEBUG_REGISTERS also includes the arch-specific bit (CONTEXT_i386 or CONTEXT_AMD64) which is included in all CONTEXT_* defines. So this basically just checks if any CONTEXT_* define is set: if ((context->ContextFlags & CONTEXT_DEBUG_REGISTERS) != 0) And similarly, unsetting CONTEXT_DEBUG_REGISTERS removes the arch-specific bit as well. 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. So this creates a CONTEXT_DEBUG_REG_FLAG define with just the debug-registers bit, and uses it in these problematic locations. --- v2: - updated commit message - changed CONTEXT_DEBUG_REG_FLAG define to avoid hardcoded number --- gdb/x86-windows-nat.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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 #define DR6_CLEAR_VALUE 0xffff0ff0 +/* The CONTEXT_DEBUG_REGISTERS define without the arch-specific bit + (CONTEXT_i386 or CONTEXT_AMD64). */ +#define CONTEXT_DEBUG_REG_FLAG (CONTEXT_DEBUG_REGISTERS & ~CONTEXT_CONTROL) + struct x86_windows_per_inferior : public windows_per_inferior { /* The function to use in order to determine whether a register is @@ -142,7 +146,7 @@ x86_windows_nat_target::thread_context_continue (windows_thread_info *th, { windows_process->fill_thread_context (th); - gdb_assert ((context->ContextFlags & CONTEXT_DEBUG_REGISTERS) != 0); + gdb_assert ((context->ContextFlags & CONTEXT_DEBUG_REG_FLAG) != 0); /* Check whether the thread has Dr6 set indicating a watchpoint hit, and we haven't seen the watchpoint event @@ -173,13 +177,13 @@ x86_windows_nat_target::thread_context_continue (windows_thread_info *th, update the debug registers later when the thread is re-resumed by the core after the watchpoint event. */ - context->ContextFlags &= ~CONTEXT_DEBUG_REGISTERS; + context->ContextFlags &= ~CONTEXT_DEBUG_REG_FLAG; } } else DEBUG_EVENTS ("0x%x has no dr6 set", th->tid); - if ((context->ContextFlags & CONTEXT_DEBUG_REGISTERS) != 0) + if ((context->ContextFlags & CONTEXT_DEBUG_REG_FLAG) != 0) { DEBUG_EVENTS ("0x%x changing dregs", th->tid); context->Dr0 = state->dr_mirror[0]; -- 2.54.0