[Lldb-commits] [lldb] [LLDB] Enable TLS Variable Debugging Without Location Info on AArch64 (PR #110822)

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Tue Oct 15 05:56:27 PDT 2024


================
@@ -790,9 +793,12 @@ DynamicLoaderPOSIXDYLD::GetThreadLocalData(const lldb::ModuleSP module_sp,
     LLDB_LOGF(log, "GetThreadLocalData error: fail to read modid");
     return LLDB_INVALID_ADDRESS;
   }
-
+  const llvm::Triple &triple_ref =
+      m_process->GetTarget().GetArchitecture().GetTriple();
   // Lookup the DTV structure for this thread.
-  addr_t dtv_ptr = tp + metadata.dtv_offset;
+  addr_t dtv_ptr = tp;
+  if (triple_ref.getArch() != llvm::Triple::aarch64)
----------------
DavidSpickett wrote:

The usual complaint here about architecture specific code being in generic paths. This at least needs a comment to explain why we're not doing this for AArch64. If not a better place to put it. ABI plugins is the usual place, this is part of the ABI after all.

Have a look at `lldb/source/Plugins/ABI/AArch64/ABIAArch64.h` and the others in that folder.

I also wonder if this will break horribly if we ever do emit proper information from the compiler. Does this code run before or after the code above in ValueObjectVariable.cpp? I wonder if we can from know already that we've been given the right information, and know whether to apply this workaround.

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


More information about the lldb-commits mailing list