kwk marked 5 inline comments as done. kwk added inline comments.
================ Comment at: lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp:1849-1851 + if (m_gnuDebugDataObjectFile != nullptr) { + return m_gnuDebugDataObjectFile; + } ---------------- labath wrote: > Not a big deal, but we usually don't put braces around short blocks like > this. If the block spans multiple lines, then the braces are fine, even if > the block technically consists of a single statement only. Done in ab313383a79 ================ Comment at: lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp:1901 + ArchSpec spec = m_gnuDebugDataObjectFile->GetArchitecture(); + if (spec && m_gnuDebugDataObjectFile->SetModulesArchitecture(spec)) { + return m_gnuDebugDataObjectFile; ---------------- 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; ``` ================ Comment at: lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp:79 + // If there's none in the orignal object file, we add it to it. + if (auto gdd_obj_file = + obj_file->GetGnuDebugDataObjectFile()) { ---------------- labath wrote: > kwk wrote: > > labath wrote: > > > Wouldn't it be better to first check for the external file, and then fall > > > back to gnu_debugdata, as the external file will likely have more > > > complete debug info? > > My idea was to load whatever symbols we can get and let it be overwritten > > by the the more concrete ones that might come later. Changing the logic > > requires to your suggesttion would require a bit more effort in that I > > cannot simply leave the `return nullptr` expressions untouched. > Aha, interesting. I missed the fact that you are continuing the search after > extracting the debugdata section. While I don't expect that will be too > useful, it does sound like a good idea in principle. > > The thing that worries me in this case is precisely the `return nullptr`. > That value is supposed to mean that the symbol vendor hasn't done anything, > and lldb should continue the search. But in this case, you actually *have* > done something. If that's how you want to implement this, then I think it > would be better if this logic was fully inside ObjectFileELF. I think you > should be able to achieve that by just moving this bit of code into > ObjectFileELF::CreateSections. That way, the contents of gnu_debugdata would > be considered an indivisible part of the main object file (which is kind of > true), and anything that the symbol vendor finds in the external files (which > is his main goal) would come on top of that. Fixed in f509e547ab793068e8b822317b93060077623b74 ================ Comment at: llvm/CMakeLists.txt:53-361 +include(CMakeDependentOption) + if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) message(STATUS "No build type selected, default to Debug") set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build type (default Debug)" FORCE) endif() ---------------- labath wrote: > Move this stuff into lldb's cmake file (lldb/cmake/modules/LLDBConfig.cmake, > probably). Fixed in d4236447e75a882ab61bd369cb8253f2a908368f Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D66791/new/ https://reviews.llvm.org/D66791 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits