[PATCH] D66791: [lldb][ELF] Read symbols from .gnu_debugdata sect.

Pavel Labath via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 2 10:09:34 PDT 2019


labath added inline comments.


================
Comment at: lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp:1901
+  ArchSpec spec = m_gnuDebugDataObjectFile->GetArchitecture();
+  if (spec && m_gnuDebugDataObjectFile->SetModulesArchitecture(spec)) {
+    return m_gnuDebugDataObjectFile;
----------------
kwk wrote:
> labath wrote:
> > kwk wrote:
> > > labath wrote:
> > > > Are you sure you want to do that? Presumably, the architecture of the module was already set by the containing object file, and that file probably has a more correct understanding of what the right architecture is...
> > > Correct, the containing object file has a better understanding of things. Are you suggesting to do this then?
> > > 
> > > ```
> > > ArchSpec spec = GetArchitecture();
> > >   if (spec && m_gnuDebugDataObjectFile->SetModulesArchitecture(spec))
> > >     return m_gnuDebugDataObjectFile;
> > > ```
> > No, I think you should just delete this bit of code completely (as the containing object file will call `SetModulesArchitecture` on its own).
> Let me try if it works how you suggested it. No, it doesn't work as no breakpoint from the embedded .gnu_debugdata section will be hit anymore. This section was inspired by `ObjectFileELF::CreateInstance` as you suggested to look at once.
I'd be very surprised if this makes a difference as calling `SetModulesArchitecture` just invokes Module::SetArchitecture, which is actually a no-op if the module architecture has already been set.

However, I see now that SetArchitecture also acts as a check, which ensures that the architecture of the (nested) object file is compatible with the module architecture. This bit sounds like a useful check against someone accidentally (however unlikely) embedding a different object file into the gnu_debugdata section, so I guess we can keep that.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D66791





More information about the llvm-commits mailing list