[Lldb-commits] [PATCH] D62246: DWARF: Implement DW_AT_signature lookup for type unit support

Pavel Labath via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu May 23 05:14:25 PDT 2019


labath updated this revision to Diff 200934.
labath marked 7 inline comments as done.
labath added a comment.

- implement the sugested changes (except the DenseMap part)
- fix a bug where we would enter an infinite recursion in case the type in the type unit ended up referring back to itself (and add a test). I do this by setting the DIE_IS_BEING_PARSED flag before doing the DW_AT_signature check (instead of at the beginning of each of the DW_TAG switch cases). This part changes the behavior slightly, because two of the switch cases did not set the DIE_IS_BEING_PARSED flag, but I believe this is actually for the better. In the DW_TAG_ptr_to_member case, I believe this is a bug, and could cause us to recurse infinitely in case of self-referring member pointer types (but I did not try to verify that). For the "default" case, this means that we will print the "unhandled type" warning only once for each DIE, which also sounds like a good thing.


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

https://reviews.llvm.org/D62246

Files:
  lit/SymbolFile/DWARF/Inputs/debug-types-basic.cpp
  lit/SymbolFile/DWARF/Inputs/debug-types-expressions.cpp
  lit/SymbolFile/DWARF/debug-types-basic.test
  lit/SymbolFile/DWARF/debug-types-expressions.test
  lit/SymbolFile/DWARF/debug-types-missing-signature.test
  lit/SymbolFile/DWARF/debug-types-signature-loop.s
  source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
  source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp
  source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h
  source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp
  source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.cpp
  source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.h
  source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
  source/Plugins/SymbolFile/DWARF/DWARFUnit.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D62246.200934.patch
Type: text/x-patch
Size: 20654 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20190523/000792be/attachment-0001.bin>


More information about the lldb-commits mailing list