[Lldb-commits] [lldb] [LLDB] Expose checking if the symbol file exists/is loaded via SBModule (PR #134163)
Jacob Lalonde via lldb-commits
lldb-commits at lists.llvm.org
Wed Apr 2 15:29:24 PDT 2025
https://github.com/Jlalond created https://github.com/llvm/llvm-project/pull/134163
The motivation for this patch is that in Statistics.cpp we [check to see if the module symfile is loaded](https://github.com/llvm/llvm-project/blob/990a086d9da0bc2fd53a6a4c95ecbbe23a297a83/lldb/source/Target/Statistics.cpp#L353C60-L353C75) to calculate how much debug info has been loaded. I have an external utility that only wants to look at the loaded debug info, which isn't exposed by the SBAPI.
>From 6102e8c8c1ce448cd81c6720e95a3dea24363cb6 Mon Sep 17 00:00:00 2001
From: Jacob Lalonde <jalalonde at fb.com>
Date: Wed, 2 Apr 2025 14:13:48 -0700
Subject: [PATCH] Expose checking if the symbol file exists/is loaded via
SBModule
---
lldb/include/lldb/API/SBModule.h | 3 +++
lldb/source/API/SBModule.cpp | 12 ++++++++++++
2 files changed, 15 insertions(+)
diff --git a/lldb/include/lldb/API/SBModule.h b/lldb/include/lldb/API/SBModule.h
index 85332066ee687..651455bdb78d2 100644
--- a/lldb/include/lldb/API/SBModule.h
+++ b/lldb/include/lldb/API/SBModule.h
@@ -290,6 +290,9 @@ class LLDB_API SBModule {
lldb::SBAddress GetObjectFileHeaderAddress() const;
lldb::SBAddress GetObjectFileEntryPointAddress() const;
+ /// Get if the symbol file for this module is loaded.
+ bool IsDebugInfoLoaded() const;
+
/// Get the number of global modules.
static uint32_t GetNumberAllocatedModules();
diff --git a/lldb/source/API/SBModule.cpp b/lldb/source/API/SBModule.cpp
index 985107ec68efd..4978a553f57c7 100644
--- a/lldb/source/API/SBModule.cpp
+++ b/lldb/source/API/SBModule.cpp
@@ -659,6 +659,18 @@ lldb::SBAddress SBModule::GetObjectFileEntryPointAddress() const {
return sb_addr;
}
+bool SBModule::IsDebugInfoLoaded() const {
+ LLDB_INSTRUMENT_VA(this);
+
+ ModuleSP module_sp(GetSP());
+ if (module_sp) {
+ SymbolFile *sym_file = module_sp->GetSymbolFile(/*create=*/false);
+ return sym_file && sym_file->GetLoadDebugInfoEnabled();
+ }
+
+ return false;
+}
+
uint32_t SBModule::GetNumberAllocatedModules() {
LLDB_INSTRUMENT();
More information about the lldb-commits
mailing list