mstorsjo added inline comments.

================
Comment at: lldb/source/Plugins/SymbolVendor/PECOFF/SymbolVendorPECOFF.cpp:119
+  };
+  for (SectionType section_type : g_sections) {
+    if (SectionSP section_sp =
----------------
alvinhochun wrote:
> mstorsjo wrote:
> > I'm curious - this adds new logic (copied from SymbolVendorELF afaik?) for 
> > iterating over sections and finding the ones that contain the dwarf debug 
> > info. Prior to this change, finding debug info within the executable itself 
> > has worked just fine.
> > 
> > What codepath and where has handled that? Has it fallen back on 
> > SymbolVendorELF so far?
> > 
> > (If that used to work, why is a specific plugin for PECOFF needed at this 
> > point for debuglink?)
> The SymbolVendorELF seems to only handle loading the external debug info 
> specified by the `.gnu_debuglink` section. The dwarf debug info already 
> embedded in the main executable should be handled somewhere else, which has 
> worked fine for both ELF and PE/COFF. Though I don't know where specifically 
> this was handled.
> 
> SymbolVendorELF tries to downcast the object file to `ObjectFileELF *`, so it 
> could not have worked for PE/COFF.
Ok, so what I misunderstood is that this function doesn't seem to handle dwarf 
debug info in the main executable after all - this only tries to dig up dwarf 
sections from `GetSymbolFileFileSpec()` or `GetDebugLink()`. So the existing 
code that locates dwarf sections in the executables themselves still runs as 
before.

So then this seems reasonable.

So essentially, if `GetDebugLink()` would be a virtual method, both 
SymbolVendorELF and SymbolVendorPECOFF could theoretically be merged into one?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126367/new/

https://reviews.llvm.org/D126367

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to