[Lldb-commits] [lldb] [LLDB] Add log channel for InstrumentationRuntime plugins (PR #168508)
Dan Liew via lldb-commits
lldb-commits at lists.llvm.org
Tue Nov 18 02:10:30 PST 2025
https://github.com/delcypher created https://github.com/llvm/llvm-project/pull/168508
This patch adds `LLDBLog::InstrumentationRuntime` as a log channel to provide an appropriate channel for instrumentation runtime plugins as previously one did not exist.
A small use of the channel is added to illustrate its use. The logging added is not intended to be comprehensive.
This is primarily motivated by an `-fbounds-safety` instrumentation plugin (https://github.com/swiftlang/llvm-project/pull/11835).
rdar://164920875
>From 94f1518109211409a677bc5597ba3c805fc9b454 Mon Sep 17 00:00:00 2001
From: Dan Liew <dan at su-root.co.uk>
Date: Tue, 18 Nov 2025 02:05:34 -0800
Subject: [PATCH] [LLDB] Add log channel for InstrumentationRuntime plugins
This patch adds `LLDBLog::InstrumentationRuntime` as a log channel to
provide an appropriate channel for instrumentation runtime plugins as
previously one did not exist.
A small use of the channel is added to illustrate its use. The logging
added is not intended to be comprehensive.
This is primarily motivated by an `-fbounds-safety` instrumentation
plugin (https://github.com/swiftlang/llvm-project/pull/11835).
rdar://164920875
---
lldb/include/lldb/Utility/LLDBLog.h | 3 ++-
.../InstrumentationRuntime/Utility/ReportRetriever.cpp | 5 ++++-
lldb/source/Utility/LLDBLog.cpp | 3 +++
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/lldb/include/lldb/Utility/LLDBLog.h b/lldb/include/lldb/Utility/LLDBLog.h
index 18e4a3ca73507..ac360bfdf8cee 100644
--- a/lldb/include/lldb/Utility/LLDBLog.h
+++ b/lldb/include/lldb/Utility/LLDBLog.h
@@ -50,7 +50,8 @@ enum class LLDBLog : Log::MaskType {
OnDemand = Log::ChannelFlag<31>,
Source = Log::ChannelFlag<32>,
Disassembler = Log::ChannelFlag<33>,
- LLVM_MARK_AS_BITMASK_ENUM(Disassembler),
+ InstrumentationRuntime = Log::ChannelFlag<34>,
+ LLVM_MARK_AS_BITMASK_ENUM(InstrumentationRuntime),
};
LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE();
diff --git a/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp b/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp
index 38c334bfb78ac..8b3702335d012 100644
--- a/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp
+++ b/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp
@@ -199,6 +199,7 @@ bool ReportRetriever::NotifyBreakpointHit(ProcessSP process_sp,
StoppointCallbackContext *context,
user_id_t break_id,
user_id_t break_loc_id) {
+ auto *log = GetLog(LLDBLog::InstrumentationRuntime);
// Make sure this is the right process
if (!process_sp || process_sp != context->exe_ctx_ref.GetProcessSP())
return false;
@@ -207,8 +208,10 @@ bool ReportRetriever::NotifyBreakpointHit(ProcessSP process_sp,
return false;
StructuredData::ObjectSP report = RetrieveReportData(process_sp);
- if (!report || report->GetType() != lldb::eStructuredDataTypeDictionary)
+ if (!report || report->GetType() != lldb::eStructuredDataTypeDictionary) {
+ LLDB_LOGF(log, "ReportRetriever::RetrieveReportData() failed");
return false;
+ }
std::string description = FormatDescription(report);
diff --git a/lldb/source/Utility/LLDBLog.cpp b/lldb/source/Utility/LLDBLog.cpp
index 613dae42064a8..a08764d84edd2 100644
--- a/lldb/source/Utility/LLDBLog.cpp
+++ b/lldb/source/Utility/LLDBLog.cpp
@@ -67,6 +67,9 @@ static constexpr Log::Category g_categories[] = {
{{"disassembler"},
{"log disassembler related activities"},
LLDBLog::Disassembler},
+ {{"instrumentation-runtime"},
+ {"log instrumentation runtime plugin related activities"},
+ LLDBLog::InstrumentationRuntime},
};
static Log::Channel g_log_channel(g_categories,
More information about the lldb-commits
mailing list