[Lldb-commits] [lldb] [lldb] Refactor DIL to take and store the context in `ExecutionContext` (PR #225849)

via lldb-commits lldb-commits at lists.llvm.org
Mon Sep 28 13:46:10 PDT 2026


================
@@ -35,37 +35,44 @@ static CompilerType GetBasicType(lldb::TypeSystemSP type_system,
 }
 
 static lldb::ValueObjectSP ArrayToPointerConversion(ValueObject &valobj,
-                                                    ExecutionContextScope &ctx,
+                                                    ExecutionContext &exe_ctx,
                                                     llvm::StringRef name) {
   uint64_t addr = valobj.GetLoadAddress();
-  ExecutionContext exe_ctx;
-  ctx.CalculateExecutionContext(exe_ctx);
   return ValueObject::CreateValueObjectFromAddress(
       name, addr, exe_ctx,
-      valobj.GetCompilerType().GetArrayElementType(&ctx).GetPointerType(),
+      valobj.GetCompilerType()
+          .GetArrayElementType(exe_ctx.GetBestExecutionContextScope())
+          .GetPointerType(),
       /* do_deref */ false);
 }
 
-static llvm::Expected<lldb::LanguageType>
-GetSourceLanguageFromCU(StackFrame &ctx) {
+llvm::Expected<lldb::LanguageType> Interpreter::GetSourceLanguageFromCU() {
+  auto frame_sp = m_exe_ctx.GetFrameSP();
+  if (!frame_sp)
+    return llvm::createStringError("no stack frame in execution context");
+
   SymbolContext symbol_context =
-      ctx.GetSymbolContext(lldb::eSymbolContextCompUnit);
+      frame_sp->GetSymbolContext(lldb::eSymbolContextCompUnit);
   if (!symbol_context.comp_unit)
-    return llvm::createStringErrorV("no compile unit for frame: {}",
-                                    ctx.GetFunctionName());
+    return llvm::createStringErrorV("no compile unit for frame: {0}",
+                                    frame_sp->GetFunctionName());
 
   return symbol_context.comp_unit->GetLanguage();
 }
 
-static llvm::Expected<lldb::TypeSystemSP> GetTypeSystemFromCU(StackFrame &ctx) {
+llvm::Expected<lldb::TypeSystemSP> Interpreter::GetTypeSystemFromCU() {
+  auto frame_sp = m_exe_ctx.GetFrameSP();
+  if (!frame_sp)
+    return llvm::createStringError("no stack frame in execution context");
+
   SymbolContext symbol_context =
-      ctx.GetSymbolContext(lldb::eSymbolContextCompUnit);
+      frame_sp->GetSymbolContext(lldb::eSymbolContextCompUnit);
   if (!symbol_context.comp_unit)
-    return llvm::createStringErrorV("no compile unit for frame: {}",
-                                    ctx.GetFunctionName());
+    return llvm::createStringErrorV("no compile unit for frame: {0}",
+                                    frame_sp->GetFunctionName());
 
----------------
cmtice wrote:

Ok.

https://github.com/llvm/llvm-project/pull/225849


More information about the lldb-commits mailing list