[Lldb-commits] [lldb] [lldb] Upstream and adopt ReadUnsignedIntegersFromMemory in AppleObjCRuntimeV2 (PR #190564)
Felipe de Azevedo Piovezan via lldb-commits
lldb-commits at lists.llvm.org
Tue Apr 7 09:54:06 PDT 2026
================
@@ -759,6 +784,84 @@ ExtractRuntimeGlobalSymbol(Process *process, ConstString name,
return symbol_load_addr;
}
+// Batched version of ExtractRuntimeGlobalSymbol. Resolves symbols and reads
+// their values in a single batch using ReadUnsignedIntegersFromMemory.
+static llvm::SmallVector<RuntimeGlobalSymbolResult, kMaxResults>
+ExtractRuntimeGlobalSymbolsBatched(
+ Process *process, const ModuleSP &module_sp,
+ llvm::ArrayRef<RuntimeGlobalSymbolSpec> specs) {
+ llvm::SmallVector<RuntimeGlobalSymbolResult, kMaxResults> results;
+ results.resize(specs.size());
+
+ if (!process || !module_sp) {
+ // Return all failures with default values.
+ for (size_t i = 0; i < specs.size(); ++i)
+ results[i] = {specs[i].default_value, false};
+ return results;
+ }
+
+ const uint8_t default_byte_size = process->GetAddressByteSize();
+
+ // Phase 1: Resolve all symbols to addresses. Build a work list of entries
+ // that need their values read in Phase 2.
+ struct ReadEntry {
+ size_t result_idx;
+ lldb::addr_t addr;
+ uint8_t byte_size;
+ };
+ llvm::SmallVector<ReadEntry, kMaxResults> work_list;
+ for (size_t i = 0; i < specs.size(); ++i) {
----------------
felipepiovezan wrote:
`for (auto [i, spec] : llvm::enumerate(specs))`
https://github.com/llvm/llvm-project/pull/190564
More information about the lldb-commits
mailing list