From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id eWjAIr6Sa2lAwwcAWB0awg (envelope-from ) for ; Sat, 17 Jan 2026 08:46:38 -0500 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=taSTBrRE; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 868441E0E7; Sat, 17 Jan 2026 08:46:38 -0500 (EST) 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 EBAFC1E093 for ; Sat, 17 Jan 2026 08:46:36 -0500 (EST) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 80ADB4BA23FB for ; Sat, 17 Jan 2026 13:46:36 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 80ADB4BA23FB 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=taSTBrRE 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 D7C924BA2E1C for ; Sat, 17 Jan 2026 13:41:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D7C924BA2E1C 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 D7C924BA2E1C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=77.238.178.201 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1768657287; cv=none; b=eMPH1RANgXlE2AjaDWYYp+eN8SZjOa0AuQpvlBzFjYhkKr3CB62IIgGKfprEEfcmSnaT+wEBU8Bck/qg8FEQztZNhOC+4fbWxKNRz7Z9RMir1PRT6ngDjQEcJeAMsc2v1Wyg25HTiR5X/HsVOEbx9L+I7mjbrL++fs838OHxEQY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1768657287; c=relaxed/simple; bh=sD0SoGpYN773PlhGyVX5dU+taRRkzfRqRiYegwu7SLQ=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=WoIkuKxeN+NJvHXVtn7z7iQk1j2/rvYn/BtvH2uMa9I9o7bGgifwh8jEwJo3dUt29PnULMw7AEF4arqV7SWLsXOj7iIybfcDOReDKTS0Mo+rb7upB9LYIxZZ7oJSCK345J0vrBHHhBMTMowI5w4YVja64ulAFnOyaT8HyT+vnUA= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D7C924BA2E1C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1768657285; bh=ZtkJ1qbUWKzMKwGi4t1uH/Vj8fHm3cfCZE6Ck22NSQo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=taSTBrREW0Yy+t/g033R3PVp7GpyKGY98+EailSbRa6QD1/3Qx+yW97g+RKXBCSaxGVVgvZw9Xa9kuwSAuZb6Wh/Ncz13cAHh8xgd4n89+JF0pcHSPxFZCdA/Qif6W7nAHTc/X7BuSv8xtIlfTraZzaGMfejg/zXkncBNxcKggzeWX03tBkwrLD2lRPgWnQoul9rEjo2gIR6RzvG/7FoLropQImhmDCH+7Nke/gX7QmBD+OTEVTMGsv2G37kr/vkgMRODaDGHyLYEEqre7BiY9sM8ZXkQVaya+EF/ON4WsJ3m+iyiuzJjt0fJWQ9TAp1xpbWyx/jjtnKCfG1N44mNQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1768657285; bh=rZv8JDDv+TgswCWQx0INViDu0AF0F+0d/Rs5xsQdFAv=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=mE2euCTPeAu7s7m2q/ax/K/XGHpGvof23DsnJ2zSyVxUOreQKRJuzQ5Ni/AVxy1VHYxwPyzVJYO3dgfINzPJirDtG4ped1qvLi9gxCVO98YV+y3v2/xHiEJE6ST7263+9Pbgv0ToUCjSIK2VxAtLq2MfLuhBBTkgbB/rZWHxmBu5GjLw5+WG3X5M/nje+JaAiVqwc4DuDT4nirZZNkvLwpBRa77qiVyUg+xYqrrZtQKjXt9GWyn3uzJuAQawPWk6zMCWJUkMqTYrJ8eRmisxHOICRQt75366IhtcfV4FXhhzsapWBWGwH+COSelNzo4mWTcqVaTFkhSSQ81KsEfSXQ== X-YMail-OSG: ayibupkVM1kjUwpb2vk4AEY2eAgcoHhKEEIYn_HuYf0S0QB8.vYUJHqI6Xq4Z5n dDS3iea6A7NnGfHWpTcC.hecwugFF6EsMGnhT4pHNSOAPmUIjqyRd1PEwNuc275lA85a53K_zAsB aFZo0iL7JEFiho9mh04Kipbe3EgdHtROYk8s1CO5sICmwhp8.Un458_Ns0.qaUu8kJKZK4I2_1pg 7Yf79sIev4Yb4mxoLdVPdUGaTceoOOU3BAwEeKgtmzYH43WDyr9Ez3RFRU21ATPTYogjuw.KwEAX MtX1FWnGMgr8QoIY5evF194JCPGbl2O4tkH1Anmo24.K.HczUTQExQ_9v_e7frrdKy7mVUFNfdMq NjRHCxE30kCLeb0exhHJ..CIWjkT_cqsvBvMtRfBm26wxtIP.bDDr.iSdC046UlUSHwQ1fvry0Sk 04WcEjY2Ljfi5G5T1OgSEQgeTpPt6EOqgnRQ.l5JM8GK3e3EjbYTswS8g4ba7twEm53RmepeQBWz TVGwmXkJMQw5sFo.omNeqHkoXiQ2499.WO1MlKSrKyaeOBnwLqo6rCdgM3_GMsG.Z2pAOVzuNJS3 KsuFyIUE.RJYXCeTNS_Qp1ufPsH5ZxlNhFgLCncDPbNbud9YE6hsGh3SpdbdbB3dqsUu72zn0PZW UouA8zqdwdBJTRPZvON_3NH8hr7zg1X5V1Mi7JKc4vf0IngvfEQTYRKjk8miCN.ekgBze7D.bMXb F8WOCi4Rjtb4CkJ.FHFBHK48XUdO0NCu5MkMfKD3aZ3xdWYAvnc3snsWi.LR4olOMDVV3Gss8DHJ 3PsUNsitUZcZgIhuh4ApMw1s_iE0O377YdTqL5DbJh6P87KTi8Vwb4noBMCuj5Hcj0cymChshhAj w9_fpDTgY0SldmAxwt1wfjtcySo5yBnT0472YQoxaw1.YH4AoLVYbsKBaeaYcPQJB_yglVBMEUVi a.S25TrHKBR.TX083himFdb277ABkDYRLaXraJv_oODOcbreAHLvJQqNAfb0INXFh1uo8aO_ajYr MHhWGspiP713YKB3o8M8B2BTWwLLMxanOSdmlFHBNMAgUHRG2P.7m4YSx7WJFxist2zPJOiy83UJ dK5mMOrHuoYTPgRCYb5YB8pzBoVKb5aHAOrdY9rgEBf8rFnqaTtxML5h7SSxXtJQRUdIoi_eNZ8_ QZ9urRgxBRVCnINCr26X5MkvimNXkBDkGTSp5Cct0rpRBkXZjTC3uP..M7I0ZkuB3O5yCu99o30e v5jdFIgUlIf92GDBLQhaF5gvFUlmEWfb.vDDANinmHImnTB7zp00JEuVCjKi5bbEJPhzJL6mZlYP YqCqNX_ouMuomVjFuFTWwS1o4NdISRfrQ3JY2rh9JqkUhn6CJcTcIzZVLPTqXS8VGOxHVukunT50 KjC5xPqC0gGDLiuifUNsZUvdw8uk41D82Zj6DBniaITpIDPJEwMavPgo4GHUplH7Wn2j8PFznr0v wvY1KQ_JMF2SqLe5YM0_Nbpqr3WpC.2t8wc_bSn2S6iE2aU7ajBT8YI7faUq7vrLbAwDHRdhR8j6 AXOZ.pURNEoOOiIgBtgBDWQiq2YNPJ0Z82EeZCTXwNx.cclu1MJJkzazbyr47lFK5vnh99JgQY64 tfv0SSvISlwWsWUkTupVmJjpjk7freq.n_6SsjQHYnRtdMOf_u5WrE_zVthmzfthfMGcMQ.9VbQ0 GczYLbIDXvl_Brkq6acW8kE3GBeU6x2r7Yj.vkzcvfvLrUam.GIOsdDWSZ1KdwU7r2CaAd6acr3j Wmf75ZGixlQSz.v0CaJcc0C0YbwZ9CJCJJRWEGopAfAO4pnAL41GqxmL3CM4c9LiVTFUe2TVCq6A JoxNKAseiuzsoyfRmCjiWhp6aqdWrZM1yugOmhqgTgdgie3slI2O2vw4Z0MzgmI8P1aHxDUpCRPJ AF2SEHaNoj9EthqG_DWFRCnljaJrYynioMxBWzJpCGx5juNc13TM2mN7s35JRa3XDLHHDFeBQJ7S RiBrth.AkwgyAc_aQEjrmvGQv9_qffWttra4Ou.JNPeKVmyYcL6ecsTyThZvA.5fzypkD3wRgX1r Gq.g1SWBAnlUao.8MuVSDC6b2vBaKPt1L2hB4MZjGtq7kP8YYIczn2oZ1Id_7mPaewTA57pjsT0W RWLhIwdZbHAdO_OGBhhDBe9bmaEtYE.WEhF9zq6j6hHGt7rBY.aiU_G5JYjNr9.Pv.G0hywjUM3D wb6kBkSz2eO8b3d1obYaIp9JgMPH6pFBc0m5tqR9riFmMmslFPxxB X-Sonic-MF: X-Sonic-ID: 1602ab10-cbe8-4813-a7f8-006aacfed4a0 Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.ir2.yahoo.com with HTTP; Sat, 17 Jan 2026 13:41:25 +0000 Received: by hermes--production-ir2-6fcf857f6f-fskn5 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 8b536636b504c3e6f51c508e4731c748; Sat, 17 Jan 2026 13:41:22 +0000 (UTC) From: Hannes Domani To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH v2 08/11] Move software breakpoint recognition code into x86-windows-nat.c Date: Sat, 17 Jan 2026 14:36:19 +0100 Message-ID: <20260117134052.2660009-8-ssbssa@yahoo.de> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260117134052.2660009-1-ssbssa@yahoo.de> References: <20260117134052.2660009-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 Approved-By: Tom Tromey --- Changes in v2: - changed EXCEPTION_RECORD to ER in comment --- gdb/windows-nat.c | 11 +++-------- gdb/windows-nat.h | 3 +++ gdb/x86-windows-nat.c | 11 +++++++++++ 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c index f9d07336cca..3ed34087bf9 100644 --- a/gdb/windows-nat.c +++ b/gdb/windows-nat.c @@ -1147,10 +1147,7 @@ windows_nat_target::get_windows_debug_event thread_id, windows_process->desired_stop_thread_id); if (current_event->dwDebugEventCode == EXCEPTION_DEBUG_EVENT - && ((current_event->u.Exception.ExceptionRecord.ExceptionCode - == EXCEPTION_BREAKPOINT) - || (current_event->u.Exception.ExceptionRecord.ExceptionCode - == STATUS_WX86_BREAKPOINT)) + && is_sw_breakpoint (¤t_event->u.Exception.ExceptionRecord) && windows_process->windows_initialization_done) { ptid_t ptid = ptid_t (current_event->dwProcessId, thread_id, 0); @@ -1201,10 +1198,8 @@ windows_nat_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus, th->stopped_at_software_breakpoint = false; if (windows_process->current_event.dwDebugEventCode == EXCEPTION_DEBUG_EVENT - && ((windows_process->current_event.u.Exception.ExceptionRecord.ExceptionCode - == EXCEPTION_BREAKPOINT) - || (windows_process->current_event.u.Exception.ExceptionRecord.ExceptionCode - == STATUS_WX86_BREAKPOINT)) + && is_sw_breakpoint (&windows_process->current_event + .u.Exception.ExceptionRecord) && windows_process->windows_initialization_done) { th->stopped_at_software_breakpoint = true; diff --git a/gdb/windows-nat.h b/gdb/windows-nat.h index df872907535..9257211dfd2 100644 --- a/gdb/windows-nat.h +++ b/gdb/windows-nat.h @@ -215,6 +215,9 @@ struct windows_nat_target : public inf_child_target virtual void store_one_register (const struct regcache *regcache, windows_thread_info *th, int r) = 0; + /* Determine if ER contains a software-breakpoint. */ + virtual bool is_sw_breakpoint (EXCEPTION_RECORD *er) = 0; + private: windows_thread_info *add_thread (ptid_t ptid, HANDLE h, void *tlb, diff --git a/gdb/x86-windows-nat.c b/gdb/x86-windows-nat.c index 7538c360bfe..52795235c9b 100644 --- a/gdb/x86-windows-nat.c +++ b/gdb/x86-windows-nat.c @@ -78,6 +78,8 @@ struct x86_windows_nat_target final : public x86_nat_target windows_thread_info *th, int r) override; void store_one_register (const struct regcache *regcache, windows_thread_info *th, int r) override; + + bool is_sw_breakpoint (EXCEPTION_RECORD *er) override; }; /* The current process. */ @@ -293,6 +295,15 @@ x86_windows_nat_target::store_one_register (const struct regcache *regcache, regcache->raw_collect (r, context_ptr + x86_windows_process.mappings[r]); } +/* See windows-nat.h. */ + +bool +x86_windows_nat_target::is_sw_breakpoint (EXCEPTION_RECORD *er) +{ + return (er->ExceptionCode == EXCEPTION_BREAKPOINT + || er->ExceptionCode == STATUS_WX86_BREAKPOINT); +} + /* Hardware watchpoint support, adapted from go32-nat.c code. */ /* Pass the address ADDR to the inferior in the I'th debug register. -- 2.52.0