https://github.com/DavidSpickett created 
https://github.com/llvm/llvm-project/pull/197127

These are delcared in NativeRegisterContextDBReg so we should zero-init them 
there rather than have everyone memset them later.

ppc64le has its own equivalent that I've made the same change to.

>From 9a430c0846d26e53ddf6c802cce79a0e5c1ff811 Mon Sep 17 00:00:00 2001
From: David Spickett <[email protected]>
Date: Tue, 12 May 2026 08:46:28 +0000
Subject: [PATCH] [lldb] Member initialise hardware breakpoint structures

These are delcared in NativeRegisterContextDBReg so we should zero-init
them there rather than have everyone memset them later.

ppc64le has its own equivalent that I've made the same change to.
---
 .../Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp    | 3 ---
 .../Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp  | 2 --
 .../Process/Linux/NativeRegisterContextLinux_arm64.cpp        | 2 --
 .../Process/Linux/NativeRegisterContextLinux_loongarch64.cpp  | 3 ---
 .../Process/Linux/NativeRegisterContextLinux_ppc64le.cpp      | 1 -
 .../Process/Linux/NativeRegisterContextLinux_ppc64le.h        | 2 +-
 .../Plugins/Process/Utility/NativeRegisterContextDBReg.h      | 4 ++--
 7 files changed, 3 insertions(+), 14 deletions(-)

diff --git 
a/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp 
b/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp
index f50b28e2ebd1d..74c55224fed49 100644
--- a/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp
+++ b/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp
@@ -59,9 +59,6 @@ 
NativeRegisterContextFreeBSD_arm64::NativeRegisterContextFreeBSD_arm64(
   g_register_flags_detector.UpdateRegisterInfo(
       GetRegisterInfoInterface().GetRegisterInfo(),
       GetRegisterInfoInterface().GetRegisterCount());
-
-  ::memset(&m_hwp_regs, 0, sizeof(m_hwp_regs));
-  ::memset(&m_hbp_regs, 0, sizeof(m_hbp_regs));
 }
 
 RegisterInfoPOSIX_arm64 &
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp
index c83cea2bbf5bd..21b6bb408caad 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp
@@ -78,8 +78,6 @@ 
NativeRegisterContextLinux_arm::NativeRegisterContextLinux_arm(
   ::memset(&m_fpr, 0, sizeof(m_fpr));
   ::memset(&m_tls, 0, sizeof(m_tls));
   ::memset(&m_gpr_arm, 0, sizeof(m_gpr_arm));
-  ::memset(&m_hwp_regs, 0, sizeof(m_hwp_regs));
-  ::memset(&m_hbp_regs, 0, sizeof(m_hbp_regs));
 
   // 16 is just a maximum value, query hardware for actual watchpoint count
   m_max_hwp_supported = 16;
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
index c7bd5d7bec252..d61eb29dd0b7e 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -216,8 +216,6 @@ 
NativeRegisterContextLinux_arm64::NativeRegisterContextLinux_arm64(
 
   ::memset(&m_fpr, 0, sizeof(m_fpr));
   ::memset(&m_gpr_arm64, 0, sizeof(m_gpr_arm64));
-  ::memset(&m_hwp_regs, 0, sizeof(m_hwp_regs));
-  ::memset(&m_hbp_regs, 0, sizeof(m_hbp_regs));
   ::memset(&m_sve_header, 0, sizeof(m_sve_header));
   ::memset(&m_pac_mask, 0, sizeof(m_pac_mask));
   ::memset(&m_tls_regs, 0, sizeof(m_tls_regs));
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_loongarch64.cpp 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_loongarch64.cpp
index c4841950f1e07..ed3d43ca48020 100644
--- 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_loongarch64.cpp
+++ 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_loongarch64.cpp
@@ -103,9 +103,6 @@ 
NativeRegisterContextLinux_loongarch64::NativeRegisterContextLinux_loongarch64(
   ::memset(&m_lsx, 0, sizeof(m_lsx));
   ::memset(&m_lasx, 0, sizeof(m_lasx));
 
-  ::memset(&m_hwp_regs, 0, sizeof(m_hwp_regs));
-  ::memset(&m_hbp_regs, 0, sizeof(m_hbp_regs));
-
   // Refer to:
   // 
https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html#control-and-status-registers-related-to-watchpoints
   // 14 is just a maximum value, query hardware for actual watchpoint count.
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_ppc64le.cpp 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_ppc64le.cpp
index 0b8571a8d6704..f4b539bf2b4c3 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_ppc64le.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_ppc64le.cpp
@@ -142,7 +142,6 @@ 
NativeRegisterContextLinux_ppc64le::NativeRegisterContextLinux_ppc64le(
   ::memset(&m_fpr_ppc64le, 0, sizeof(m_fpr_ppc64le));
   ::memset(&m_vmx_ppc64le, 0, sizeof(m_vmx_ppc64le));
   ::memset(&m_vsx_ppc64le, 0, sizeof(m_vsx_ppc64le));
-  ::memset(&m_hwp_regs, 0, sizeof(m_hwp_regs));
 }
 
 uint32_t NativeRegisterContextLinux_ppc64le::GetRegisterSetCount() const {
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_ppc64le.h 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_ppc64le.h
index 942c65fcd241d..4ca9d43a24926 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_ppc64le.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_ppc64le.h
@@ -122,7 +122,7 @@ class NativeRegisterContextLinux_ppc64le : public 
NativeRegisterContextLinux {
     int mode;               // Defines if watchpoint is read/write/access.
   };
 
-  std::array<DREG, 16> m_hwp_regs;
+  std::array<DREG, 16> m_hwp_regs{};
 
   // 16 is just a maximum value, query hardware for actual watchpoint count
   uint32_t m_max_hwp_supported = 16;
diff --git a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg.h 
b/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg.h
index 721c15e1ee900..60d1bfa38dd01 100644
--- a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg.h
+++ b/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg.h
@@ -65,8 +65,8 @@ class NativeRegisterContextDBReg
   };
 
 protected:
-  std::array<struct DREG, 16> m_hbp_regs; // hardware breakpoints
-  std::array<struct DREG, 16> m_hwp_regs; // hardware watchpoints
+  std::array<struct DREG, 16> m_hbp_regs{}; // hardware breakpoints
+  std::array<struct DREG, 16> m_hwp_regs{}; // hardware watchpoints
 
   uint32_t m_max_hbp_supported;
   uint32_t m_max_hwp_supported;

_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to