llvm-project/llvm/lib/DebugInfo/DWARF
Pavel Labath 906b777a6a DWARFVerifier: Enhance validation of .debug_names hash tables
Summary:
This patch adds more checks to the .debug_names validator. Specifically,
they check for:
- buckets claiming to be non-empty but pointing to mismatched hashes
  (most consumers would interpret this as an empty bucket, but it
  questionable whether the generator meant that)
- hashes that are not reachable from any bucket
- names with incorrect hashes

Together, these checks ensure that any name in the index can be reached
through the hash table using the regular lookup algorithm. We also warn
if we encounter a name index without a hash table.

Reviewers: JDevlieghere, aprantl, dblaikie

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D44433

llvm-svn: 327699
2018-03-16 10:02:16 +00:00
..
CMakeLists.txt [Support] Move syntax highlighting into support 2018-03-09 09:56:24 +00:00
DWARFAbbreviationDeclaration.cpp DWARF: Unify form size handling code 2018-03-14 09:39:54 +00:00
DWARFAcceleratorTable.cpp DWARF: Unify form size handling code 2018-03-14 09:39:54 +00:00
DWARFAddressRange.cpp [DWARF v5] Support for verbose dumping of .debug_rnglist entries 2018-03-08 20:52:35 +00:00
DWARFCompileUnit.cpp llvm-dwarfdump: implement --recurse-depth=<N> 2017-09-20 17:44:00 +00:00
DWARFContext.cpp [DWARF v5] Support for verbose dumping of .debug_rnglist entries 2018-03-08 20:52:35 +00:00
DWARFDataExtractor.cpp Reland "[DebugInfo] Support DWARF expressions in eh_frame" 2018-03-08 00:46:53 +00:00
DWARFDebugAbbrev.cpp dwarfdump: Delay parsing abbreviations until they're needed 2017-09-19 15:13:55 +00:00
DWARFDebugArangeSet.cpp [DebugInfo] Unify dumping of address ranges 2018-01-16 11:17:57 +00:00
DWARFDebugAranges.cpp [DebugInfo] Use shrink_to_fit to simplify code. NFCI. 2017-08-01 14:38:08 +00:00
DWARFDebugFrame.cpp Reland "[DebugInfo] Support DWARF expressions in eh_frame" 2018-03-08 00:46:53 +00:00
DWARFDebugInfoEntry.cpp [DWARF] NFC: DWARFDataExtractor combines relocs with DataExtractor. 2017-06-29 16:52:08 +00:00
DWARFDebugLine.cpp DWARF: Unify form size handling code 2018-03-14 09:39:54 +00:00
DWARFDebugLoc.cpp [DebugInfo] Unify dumping of address ranges 2018-01-16 11:17:57 +00:00
DWARFDebugMacro.cpp [Support] Move syntax highlighting into support 2018-03-09 09:56:24 +00:00
DWARFDebugPubTable.cpp llvm-dwarfdump: Factor out the printing of the section header (NFC) 2017-09-15 17:39:50 +00:00
DWARFDebugRangeList.cpp [DWARF v5] Add limited support for dumping .debug_rnglists 2018-02-02 12:35:52 +00:00
DWARFDebugRnglists.cpp [DebugInfo] Move RangeListEntries instead of copying. 2018-03-08 21:31:10 +00:00
DWARFDie.cpp [Support] Move syntax highlighting into support 2018-03-09 09:56:24 +00:00
DWARFExpression.cpp Reland "[DebugInfo] Support DWARF expressions in eh_frame" 2018-03-08 00:46:53 +00:00
DWARFFormValue.cpp DWARF: Unify form size handling code 2018-03-14 09:39:54 +00:00
DWARFGdbIndex.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
DWARFTypeUnit.cpp llvm-dwarfdump: implement --recurse-depth=<N> 2017-09-20 17:44:00 +00:00
DWARFUnit.cpp DWARF: Unify form size handling code 2018-03-14 09:39:54 +00:00
DWARFUnitIndex.cpp dwarfdump/symbolizer: Avoid loading unneeded CUs from a DWP 2017-09-19 18:36:11 +00:00
DWARFVerifier.cpp DWARFVerifier: Enhance validation of .debug_names hash tables 2018-03-16 10:02:16 +00:00
LLVMBuild.txt [dwarfdump] Pretty print location expressions and location lists 2017-08-29 21:41:21 +00:00