Adds initial llvm-dwarfdump --verify support with unit tests.

Description

Adds initial llvm-dwarfdump --verify support with unit tests.

lldb-dwarfdump gets a new "--verify" option that will verify a single file's DWARF debug info and will print out any errors that it finds. It will return an non-zero exit status if verification fails, and a zero exit status if verification succeeds. Adding the --quiet option will suppress any output the STDOUT or STDERR.

The first part of the verify does the following:

  • verifies that all CU relative references (DW_FORM_ref1, DW_FORM_ref2, DW_FORM_ref4, DW_FORM_ref8, DW_FORM_ref_udata) have valid CU offsets
  • verifies that all DW_FORM_ref_addr references have valid .debug_info offsets
  • verifies that all DW_AT_ranges attributes have valid .debug_ranges offsets
  • verifies that all DW_AT_stmt_list attributes have valid .debug_line offsets
  • verifies that all DW_FORM_strp attributes have valid .debug_str offsets

Unit tests were added for each of the above cases.

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

Details

Committed
gclaytonMay 1 2017, 3:07 PM
Differential Revision
D32707: lldb-dwarfdump -verify [-quiet]
Parents
rL301843: Bitcode: Make the summary reader responsible for merging. NFCI.
Branches
Unknown
Tags
Unknown