================
@@ -4215,6 +4215,30 @@ void SymbolFileDWARF::DumpClangAST(Stream &s, 
llvm::StringRef filter) {
   clang->Dump(s.AsRawOstream(), filter);
 }
 
+lldb_private::ModuleSpecList SymbolFileDWARF::GetSeparateDebugInfoFiles() {
+  DWARFDebugInfo &info = DebugInfo();
+  const size_t num_cus = info.GetNumUnits();
+  lldb_private::ModuleSpecList spec_list;
+  for (uint32_t cu_idx = 0; cu_idx < num_cus; ++cu_idx) {
+    DWARFUnit *unit = info.GetUnitAtIndex(cu_idx);
+    DWARFCompileUnit *dwarf_cu = llvm::dyn_cast<DWARFCompileUnit>(unit);
+    if (dwarf_cu == nullptr)
+      continue;
+
+    if (!dwarf_cu->GetDWOId().has_value())
+      continue;
+
+    SymbolFile *dwo_symfile = dwarf_cu->GetDwoSymbolFile();
+    if (!dwo_symfile)
+      continue;
+
+    lldb_private::FileSpec symfile_spec =
+        dwo_symfile->GetObjectFile()->GetFileSpec();
----------------
clayborg wrote:

If we can't find the symbol file it would be nice to still get the data. We 
should also store more than just the filespec. 

If we have a .dwp file, it should be specified as the FileSpec, the .dwo name 
should be filled into the `ModuleSpec.m_object_name` and the DWO ID should be 
filled into the `ModuleSpec.m_uuid`.  Regardless if we have the file or not. 

https://github.com/llvm/llvm-project/pull/144119
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to