Commit Graph

39 Commits

Author SHA1 Message Date
Alexey Samsonov
a887f63924 Fix a bug in DebugInfo lib, extend a comment for one of the methods
llvm-svn: 159707
2012-07-04 09:42:54 +00:00
Alexey Samsonov
2e5d156c11 This patch extends the libLLVMDebugInfo which contains a minimalistic DWARF parser:
1) DIContext is now able to return function name for a given instruction address (besides file/line info).
2) llvm-dwarfdump accepts flag --functions that prints the function name (if address is specified by --address flag).
3) test case that checks the basic functionality of llvm-dwarfdump added

llvm-svn: 159512
2012-07-02 05:54:45 +00:00
Benjamin Kramer
270e886395 Fix a C++11 UDL conflict.
Still not fixed in the standard ;)

llvm-svn: 154044
2012-04-04 20:33:56 +00:00
David Blaikie
06ecc99a56 More dead code removal (using -Wunreachable-code)
llvm-svn: 148578
2012-01-20 21:51:11 +00:00
David Blaikie
576aba04f1 Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch
llvm-svn: 146960
2011-12-20 02:50:00 +00:00
Daniel Dunbar
30d6a45140 LLVMBuild: Remove trailing newline, which irked me.
llvm-svn: 146409
2011-12-12 19:48:00 +00:00
Daniel Dunbar
4e00f5f8fd build/CMake: Finish removal of add_llvm_library_dependencies.
llvm-svn: 145420
2011-11-29 19:25:30 +00:00
Benjamin Kramer
da83e60daf Audited all the format strings in libDebugInfo and fixed those that didn't match the types.
llvm-svn: 143814
2011-11-05 16:01:13 +00:00
Benjamin Kramer
638df7f8c4 Reduce the offsets in DwarfDebugInfoEntry to 32 bit, they're printed with %x and
that breaks on big-endian machines.

I have to clean up the 32/64 bit confusion in libDebugInfo some day.

llvm-svn: 143812
2011-11-05 15:35:00 +00:00
Benjamin Kramer
3c2ba1a51a Add more PRI.64 macros for MSVC and use them throughout the codebase.
llvm-svn: 143799
2011-11-05 08:57:40 +00:00
Daniel Dunbar
3760ebeebb build: Add initial cut at LLVMBuild.txt files.
llvm-svn: 143634
2011-11-03 18:53:17 +00:00
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