Benjamin Kramer
fe80f1da40
DWARF: Print line tables per compile unit, so they get the right address size.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139808 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15 18:02:20 +00:00
Benjamin Kramer
34f864fd38
DWARF: wire up .debug_str dumping.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139799 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15 16:57:13 +00:00
Benjamin Kramer
75c63087b4
DWARF: Make DIE printing more bulletproof.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139786 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15 05:43:00 +00:00
Benjamin Kramer
7b97442b49
DWARF: Print the number for unknown abbrev fields.
...
Thanks Nick!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139778 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15 04:15:59 +00:00
Benjamin Kramer
42180e8336
DWARF: Fail gracefully when encountering unknown values in an abbrev.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139777 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15 04:00:58 +00:00
Nick Lewycky
6bc4e712dc
Give structs with virtual methods a virtual destructor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139776 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15 03:41:51 +00:00
Benjamin Kramer
068d9a564b
DWARF: Silence GCC -Wsign-compare warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139775 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15 03:20:04 +00:00
Benjamin Kramer
89aedba562
DWARF: Fix indentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139774 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15 03:11:09 +00:00
Benjamin Kramer
7393c7f748
DWARF: Include <algorithm> explicitly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139773 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15 02:19:33 +00:00
Benjamin Kramer
b848e97611
DWARF: Add basic support for line tables.
...
The llvm-dwarfdump output isn't very verbose yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139771 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15 02:12:05 +00:00
Benjamin Kramer
10df80692c
DWARF: Generate the address lookup table from the DIE tree if .debug_aranges is not available.
...
Ported from LLDB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139732 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-14 20:52:27 +00:00
Benjamin Kramer
d6361c0954
DWARF: Reorder fields to reduce padding.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139712 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-14 18:34:47 +00:00
Benjamin Kramer
0942255f6d
DWARF: Improve indentation of DIE dumping so it's easier to see the structure.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139705 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-14 17:54:56 +00:00
Benjamin Kramer
1c0b24f91a
llvm-dwarfdump: Make the "is debug info section" heuristic stricter so it doesn't accidentaly picks up the wrong section.
...
Also add some validation code to the aranges section parser.
Fixes PR10926.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139701 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-14 17:28:13 +00:00
Benjamin Kramer
553f933963
Don't rely in <algorithm> being pulled in transitively.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139684 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-14 01:27:48 +00:00
Benjamin Kramer
358f4fd9ee
DWARF: Port support for parsing .debug_aranges section from LLDB and wire it up to llvm-dwarfdump.
...
This is only one half of it, the part that caches address ranges from the DIEs when .debug_aranges is
not available will be ported soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139680 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-14 01:09:52 +00:00
Benjamin Kramer
15ec085c40
DebugInfo: Don't print DIEs multiple times.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139671 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-14 00:15:32 +00:00
Benjamin Kramer
4aa3fea8b1
Style & indentation tweaks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139646 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-13 21:47:32 +00:00
Benjamin Kramer
8a23a77a54
I know copy&paste!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139628 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-13 19:49:53 +00:00
Benjamin Kramer
72c0d7fdd3
Sketch out a DWARF parser.
...
This introduces a new library to LLVM: libDebugInfo. It will provide debug information
parsing to LLVM. Much of the design and some of the code is taken from the LLDB project.
It also contains an llvm-dwarfdump tool that can dump the abbrevs and DIEs from an
object file. It can be used to write tests for DWARF input and output easily.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139627 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-13 19:42:23 +00:00