[all-commits] [llvm/llvm-project] d67100: [LLDB][NativePDB] Fix several crashes when parsing...

Zequan Wu via All-commits all-commits at lists.llvm.org
Wed Jun 8 16:41:38 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d6710023e396aa55f92e3906755d68b06489d95f
      https://github.com/llvm/llvm-project/commit/d6710023e396aa55f92e3906755d68b06489d95f
  Author: Zequan Wu <zequanwu at google.com>
  Date:   2022-06-08 (Wed, 08 Jun 2022)

  Changed paths:
    M lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
    M lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.cpp

  Log Message:
  -----------
  [LLDB][NativePDB] Fix several crashes when parsing debug info.
1. If array element type is a tag decl, complete it.
2. Fix few places where `asTag` should be used instead of `asClass()`.
3. Handle the case that `PdbAstBuilder::CreateFunctionDecl` return nullptr mainly due to an existing workaround (`m_cxx_record_map`).
4. `FindMembersSize` should never return error as this would cause early exiting in `CVTypeVisitor::visitFieldListMemberStream` and then cause assertion failure.
5. In some pdbs from C++ runtime libraries have S_LPROC32 followed directly by S_LOCAL and the local variable location is a S_DEFRANGE_FRAMEPOINTER_REL. There is no information about base frame register in this case, ignoring it by returning RegisterId::NONE.
6. Add a TODO when S_DEFRANGE_SUBFIELD_REGISTER describes the variable location of a pointer type. For now, just ignoring it if the variable is pointer.




More information about the All-commits mailing list