[llvm] [lldb] DEBUGINFOD based DWP acquisition for LLDB (PR #70996)

Kevin Frei via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 2 08:07:44 PDT 2023


================
@@ -4892,6 +4894,21 @@ void TargetProperties::SetDebugUtilityExpression(bool debug) {
   SetPropertyAtIndex(idx, debug);
 }
 
+Args TargetProperties::GetDebugInfoDURLs() const {
+  Args urls;
+  m_collection_sp->GetPropertyAtIndexAsArgs(ePropertyDebugInfoDURLs, urls);
+  return urls;
+}
+
+void TargetProperties::DebugInfoDURLsChangedCallback() {
+  Args urls = GetDebugInfoDURLs();
+  llvm::SmallVector<llvm::StringRef> dbginfod_urls;
+  std::transform(urls.begin(), urls.end(), dbginfod_urls.end(),
+                 [](const auto &obj) { return obj.ref(); });
+  llvm::setDefaultDebuginfodUrls(dbginfod_urls);
----------------
kevinfrei wrote:

All cards on the table: I don't understand enough about that particular part of the architecture to know "where" is the right place for this setting to live. I added it to Target because that was where @clayborg originally suggested. In practice, you're not generally going to want to have completely different settings for different targets, as there shouldn't be different sources of truth for symbols.

And now that I read what I just typeed, I can very much imagine a scenario where there's one symbol server that only supports line info, and a different one that supports full type info :/ So, maybe per-target is a good idea?

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


More information about the llvm-commits mailing list