diff options
author | Greg Clayton <gclayton@apple.com> | 2017-05-02 22:48:52 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2017-05-02 22:48:52 +0000 |
commit | 6707046f9018c34274cdfbc317eb6041631e7f2c (patch) | |
tree | 283c5e2bd355b0b9b2a6d6e58b9918457f16f186 /llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp | |
parent | 4a01ffbd6aca4a26f4a7b6f9112e920a56ff6e07 (diff) | |
download | bcm5719-llvm-6707046f9018c34274cdfbc317eb6041631e7f2c.tar.gz bcm5719-llvm-6707046f9018c34274cdfbc317eb6041631e7f2c.zip |
Add line table verification to lldb-dwarfdump --verify
This patch verifies the .debug_line:
- verify all addresses in a line table sequence have ascending addresses
- verify that all line table file indexes are valid
Unit tests added for both cases.
Differential Revision: https://reviews.llvm.org/D32765
llvm-svn: 301984
Diffstat (limited to 'llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp')
-rw-r--r-- | llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp b/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp index 45e92cfc785..f32e8fe7635 100644 --- a/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp @@ -287,6 +287,12 @@ void DWARFDebugLine::Row::reset(bool DefaultIsStmt) { EpilogueBegin = false; } +void DWARFDebugLine::Row::dumpTableHeader(raw_ostream &OS) { + OS << "Address Line Column File ISA Discriminator Flags\n" + << "------------------ ------ ------ ------ --- ------------- " + "-------------\n"; +} + void DWARFDebugLine::Row::dump(raw_ostream &OS) const { OS << format("0x%16.16" PRIx64 " %6u %6u", Address, Line, Column) << format(" %6u %3u %13u ", File, Isa, Discriminator) @@ -313,9 +319,7 @@ void DWARFDebugLine::LineTable::dump(raw_ostream &OS) const { OS << '\n'; if (!Rows.empty()) { - OS << "Address Line Column File ISA Discriminator Flags\n" - << "------------------ ------ ------ ------ --- ------------- " - "-------------\n"; + Row::dumpTableHeader(OS); for (const Row &R : Rows) { R.dump(OS); } |