[Lldb-commits] [lldb] 08a9207 - [LLDB] ASanLibsanitizers Use `sanitizers_address_on_report` breakpoint (#84583)
via lldb-commits
lldb-commits at lists.llvm.org
Mon Mar 11 11:57:58 PDT 2024
Author: Usama Hameed
Date: 2024-03-11T11:57:53-07:00
New Revision: 08a9207f947b8b022d70f8ee7eeeda7acc6aac76
URL: https://github.com/llvm/llvm-project/commit/08a9207f947b8b022d70f8ee7eeeda7acc6aac76
DIFF: https://github.com/llvm/llvm-project/commit/08a9207f947b8b022d70f8ee7eeeda7acc6aac76.diff
LOG: [LLDB] ASanLibsanitizers Use `sanitizers_address_on_report` breakpoint (#84583)
symbol
This patch puts the default breakpoint on the
sanitizers_address_on_report symbol, and uses the old symbol as a backup
if the default case is not found
rdar://123911522
Added:
Modified:
lldb/source/Plugins/InstrumentationRuntime/ASanLibsanitizers/InstrumentationRuntimeASanLibsanitizers.cpp
lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp
Removed:
################################################################################
diff --git a/lldb/source/Plugins/InstrumentationRuntime/ASanLibsanitizers/InstrumentationRuntimeASanLibsanitizers.cpp b/lldb/source/Plugins/InstrumentationRuntime/ASanLibsanitizers/InstrumentationRuntimeASanLibsanitizers.cpp
index d84cd36d7ce17b..cd91f4a6ff1bc2 100644
--- a/lldb/source/Plugins/InstrumentationRuntime/ASanLibsanitizers/InstrumentationRuntimeASanLibsanitizers.cpp
+++ b/lldb/source/Plugins/InstrumentationRuntime/ASanLibsanitizers/InstrumentationRuntimeASanLibsanitizers.cpp
@@ -90,9 +90,16 @@ void InstrumentationRuntimeASanLibsanitizers::Activate() {
if (!process_sp)
return;
+ lldb::ModuleSP module_sp = GetRuntimeModuleSP();
+
Breakpoint *breakpoint = ReportRetriever::SetupBreakpoint(
- GetRuntimeModuleSP(), process_sp,
- ConstString("_Z22raise_sanitizers_error23sanitizer_error_context"));
+ module_sp, process_sp, ConstString("sanitizers_address_on_report"));
+
+ if (!breakpoint) {
+ breakpoint = ReportRetriever::SetupBreakpoint(
+ module_sp, process_sp,
+ ConstString("_Z22raise_sanitizers_error23sanitizer_error_context"));
+ }
if (!breakpoint)
return;
diff --git a/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp b/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp
index ff58c4cababae3..298b63bc716fcd 100644
--- a/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp
+++ b/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp
@@ -219,6 +219,7 @@ bool ReportRetriever::NotifyBreakpointHit(ProcessSP process_sp,
return true; // Return true to stop the target
}
+// FIXME: Setup the breakpoint using a less fragile SPI. rdar://124399066
Breakpoint *ReportRetriever::SetupBreakpoint(ModuleSP module_sp,
ProcessSP process_sp,
ConstString symbol_name) {
More information about the lldb-commits
mailing list