NAKAMURA Takumi
cc0706b36c
lib/DebugInfo/DWARFDebugLine.cpp: De-Unicode-ify.
...
llvm-svn: 141484
2011-10-08 11:22:47 +00:00
NAKAMURA Takumi
fe47764929
Whitespace
...
llvm-svn: 141483
2011-10-08 11:22:41 +00:00
Benjamin Kramer
ff31737153
DWARF: avoid unnecessary map lookups.
...
llvm-svn: 140260
2011-09-21 17:31:42 +00:00
Benjamin Kramer
5938cf29d2
Namespacify.
...
llvm-svn: 139892
2011-09-16 00:35:06 +00:00
Benjamin Kramer
e98b6ec93c
DWARF: Reset the state after parsing a line table prologue and remove an unnecessary lookup.
...
llvm-svn: 139859
2011-09-15 21:59:13 +00:00
Benjamin Kramer
912beeec25
DWARF: Don't crash when looking up an invalid address.
...
llvm-svn: 139846
2011-09-15 21:08:54 +00:00
Benjamin Kramer
a2833ff7e0
DWARF: Put all the pieces we have together and provide a single accessor to DIContext that provides line information when given an address.
...
llvm-svn: 139836
2011-09-15 20:43:22 +00:00
Benjamin Kramer
5307d9c91a
DWARF: Remove accessors that parse the whole line table section in one go, this can't possibly work.
...
The address size is specified by the compile unit associated with a line table, there is no global address size.
llvm-svn: 139835
2011-09-15 20:43:18 +00:00
Benjamin Kramer
1adbd30351
DWARF: Print line tables per compile unit, so they get the right address size.
...
llvm-svn: 139808
2011-09-15 18:02:20 +00:00
Benjamin Kramer
900209189c
DWARF: wire up .debug_str dumping.
...
llvm-svn: 139799
2011-09-15 16:57:13 +00:00
Benjamin Kramer
346abfde05
DWARF: Make DIE printing more bulletproof.
...
llvm-svn: 139786
2011-09-15 05:43:00 +00:00
Benjamin Kramer
2b93dac69c
DWARF: Print the number for unknown abbrev fields.
...
Thanks Nick!
llvm-svn: 139778
2011-09-15 04:15:59 +00:00
Benjamin Kramer
2dd05a53d3
DWARF: Fail gracefully when encountering unknown values in an abbrev.
...
llvm-svn: 139777
2011-09-15 04:00:58 +00:00
Nick Lewycky
4b85977895
Give structs with virtual methods a virtual destructor.
...
llvm-svn: 139776
2011-09-15 03:41:51 +00:00
Benjamin Kramer
8f332f8767
DWARF: Silence GCC -Wsign-compare warning.
...
llvm-svn: 139775
2011-09-15 03:20:04 +00:00
Benjamin Kramer
551244d899
DWARF: Fix indentation.
...
llvm-svn: 139774
2011-09-15 03:11:09 +00:00
Benjamin Kramer
8013b8f7e0
DWARF: Include <algorithm> explicitly.
...
llvm-svn: 139773
2011-09-15 02:19:33 +00:00
Benjamin Kramer
ceca872d69
DWARF: Add basic support for line tables.
...
The llvm-dwarfdump output isn't very verbose yet.
llvm-svn: 139771
2011-09-15 02:12:05 +00:00
Benjamin Kramer
00648a5c53
DWARF: Generate the address lookup table from the DIE tree if .debug_aranges is not available.
...
Ported from LLDB.
llvm-svn: 139732
2011-09-14 20:52:27 +00:00
Benjamin Kramer
3f753c2372
DWARF: Reorder fields to reduce padding.
...
llvm-svn: 139712
2011-09-14 18:34:47 +00:00
Benjamin Kramer
fd97743d22
DWARF: Improve indentation of DIE dumping so it's easier to see the structure.
...
llvm-svn: 139705
2011-09-14 17:54:56 +00:00
Benjamin Kramer
b08f6dc724
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.
llvm-svn: 139701
2011-09-14 17:28:13 +00:00
Benjamin Kramer
a7b727b0bf
Don't rely in <algorithm> being pulled in transitively.
...
llvm-svn: 139684
2011-09-14 01:27:48 +00:00
Benjamin Kramer
6b456ffb42
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.
llvm-svn: 139680
2011-09-14 01:09:52 +00:00
Benjamin Kramer
62f1c110f1
DebugInfo: Don't print DIEs multiple times.
...
llvm-svn: 139671
2011-09-14 00:15:32 +00:00
Benjamin Kramer
c592744658
Style & indentation tweaks.
...
llvm-svn: 139646
2011-09-13 21:47:32 +00:00
Benjamin Kramer
fdfaae6a8f
I know copy&paste!
...
llvm-svn: 139628
2011-09-13 19:49:53 +00:00
Benjamin Kramer
c4e7a56915
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.
llvm-svn: 139627
2011-09-13 19:42:23 +00:00