summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo
Commit message (Collapse)AuthorAgeFilesLines
...
* [DebugInfo] fixup for r162657: update CMakeLists.txtAlexey Samsonov2012-08-271-0/+1
| | | | llvm-svn: 162659
* Add basic support for .debug_ranges section to LLVM's DebugInfo library.Alexey Samsonov2012-08-275-5/+136
| | | | | | | | | | | This section (introduced in DWARF-3) is used to define instruction address ranges for functions that are not contiguous and can't be described by low_pc/high_pc attributes (this is the usual case for inlined subroutines). The patch is the first step to support fetching complete inlining info from DWARF. Reviewed by Benjamin Kramer. llvm-svn: 162657
* Add support for some missing DW_FORM_*.Eric Christopher2012-08-242-0/+77
| | | | | TODO: Fix code duplication and coding style. llvm-svn: 162525
* Formatting.Eric Christopher2012-08-241-1/+1
| | | | llvm-svn: 162524
* Formatting cleanup.Eric Christopher2012-08-231-7/+7
| | | | llvm-svn: 162499
* Add an assert here in case parsing gave us a NULL compile unit.Eric Christopher2012-08-231-1/+3
| | | | llvm-svn: 162498
* 80-col.Eric Christopher2012-08-231-1/+1
| | | | llvm-svn: 162422
* Tidy.Eric Christopher2012-08-231-3/+3
| | | | llvm-svn: 162421
* Fix the representation of debug line table in DebugInfo LLVM library,Alexey Samsonov2012-08-073-48/+134
| | | | | | | | | | | | | and "instruction address -> file/line" lookup. Instead of plain collection of rows, debug line table for compilation unit is now treated as the number of row ranges, describing sequences (series of contiguous machine instructions). The sequences are not always listed in the order of increasing address, so previously used std::lower_bound() sometimes produced wrong results. Now the instruction address lookup consists of two stages: finding the correct sequence, and searching for address in range of rows for this sequence. llvm-svn: 161414
* DebugInfo library: add support for fetching absolute paths to source filesAlexey Samsonov2012-07-194-7/+39
| | | | | | | | (instead of basenames) from DWARF. Use this behavior in llvm-dwarfdump tool. Reviewed by Benjamin Kramer. llvm-svn: 160496
* Improve behavior of DebugInfoEntryMinimal::getSubprogramName() introduced in ↵Alexey Samsonov2012-07-173-28/+35
| | | | | | | | | | | r159512. To fetch a subprogram name we should not only inspect the DIE for this subprogram, but optionally inspect its specification, or its abstract origin (even if there is no inlining), or even specification of an abstract origin. Reviewed by Benjamin Kramer. llvm-svn: 160365
* Fix a bug in DebugInfo lib, extend a comment for one of the methodsAlexey Samsonov2012-07-042-3/+3
| | | | llvm-svn: 159707
* This patch extends the libLLVMDebugInfo which contains a minimalistic DWARF ↵Alexey Samsonov2012-07-027-25/+108
| | | | | | | | | | 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
* Fix a C++11 UDL conflict.Benjamin Kramer2012-04-041-1/+1
| | | | | | Still not fixed in the standard ;) llvm-svn: 154044
* More dead code removal (using -Wunreachable-code)David Blaikie2012-01-201-2/+0
| | | | llvm-svn: 148578
* Unweaken vtables as per ↵David Blaikie2011-12-202-0/+3
| | | | | | http://llvm.org/docs/CodingStandards.html#ll_virtual_anch llvm-svn: 146960
* LLVMBuild: Remove trailing newline, which irked me.Daniel Dunbar2011-12-121-1/+0
| | | | llvm-svn: 146409
* build/CMake: Finish removal of add_llvm_library_dependencies.Daniel Dunbar2011-11-291-4/+0
| | | | llvm-svn: 145420
* Audited all the format strings in libDebugInfo and fixed those that didn't ↵Benjamin Kramer2011-11-054-13/+14
| | | | | | match the types. llvm-svn: 143814
* Reduce the offsets in DwarfDebugInfoEntry to 32 bit, they're printed with %x andBenjamin Kramer2011-11-052-3/+3
| | | | | | | | that breaks on big-endian machines. I have to clean up the 32/64 bit confusion in libDebugInfo some day. llvm-svn: 143812
* Add more PRI.64 macros for MSVC and use them throughout the codebase.Benjamin Kramer2011-11-054-9/+11
| | | | llvm-svn: 143799
* build: Add initial cut at LLVMBuild.txt files.Daniel Dunbar2011-11-031-0/+23
| | | | llvm-svn: 143634
* lib/DebugInfo/DWARFDebugLine.cpp: De-Unicode-ify.NAKAMURA Takumi2011-10-081-2/+2
| | | | llvm-svn: 141484
* WhitespaceNAKAMURA Takumi2011-10-081-1/+1
| | | | llvm-svn: 141483
* DWARF: avoid unnecessary map lookups.Benjamin Kramer2011-09-211-6/+5
| | | | llvm-svn: 140260
* Namespacify.Benjamin Kramer2011-09-161-8/+10
| | | | llvm-svn: 139892
* DWARF: Reset the state after parsing a line table prologue and remove an ↵Benjamin Kramer2011-09-153-5/+5
| | | | | | unnecessary lookup. llvm-svn: 139859
* DWARF: Don't crash when looking up an invalid address.Benjamin Kramer2011-09-151-0/+6
| | | | llvm-svn: 139846
* DWARF: Put all the pieces we have together and provide a single accessor to ↵Benjamin Kramer2011-09-153-1/+57
| | | | | | DIContext that provides line information when given an address. llvm-svn: 139836
* DWARF: Remove accessors that parse the whole line table section in one go, ↵Benjamin Kramer2011-09-154-58/+39
| | | | | | | | 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
* DWARF: Print line tables per compile unit, so they get the right address size.Benjamin Kramer2011-09-153-5/+23
| | | | llvm-svn: 139808
* DWARF: wire up .debug_str dumping.Benjamin Kramer2011-09-154-17/+25
| | | | llvm-svn: 139799
* DWARF: Make DIE printing more bulletproof.Benjamin Kramer2011-09-151-5/+18
| | | | llvm-svn: 139786
* DWARF: Print the number for unknown abbrev fields.Benjamin Kramer2011-09-151-5/+18
| | | | | | Thanks Nick! llvm-svn: 139778
* DWARF: Fail gracefully when encountering unknown values in an abbrev.Benjamin Kramer2011-09-151-4/+9
| | | | llvm-svn: 139777
* Give structs with virtual methods a virtual destructor.Nick Lewycky2011-09-152-0/+6
| | | | llvm-svn: 139776
* DWARF: Silence GCC -Wsign-compare warning.Benjamin Kramer2011-09-151-1/+1
| | | | llvm-svn: 139775
* DWARF: Fix indentation.Benjamin Kramer2011-09-152-82/+81
| | | | llvm-svn: 139774
* DWARF: Include <algorithm> explicitly.Benjamin Kramer2011-09-151-0/+1
| | | | llvm-svn: 139773
* DWARF: Add basic support for line tables.Benjamin Kramer2011-09-155-0/+707
| | | | | | The llvm-dwarfdump output isn't very verbose yet. llvm-svn: 139771
* DWARF: Generate the address lookup table from the DIE tree if .debug_aranges ↵Benjamin Kramer2011-09-147-1/+87
| | | | | | | | is not available. Ported from LLDB. llvm-svn: 139732
* DWARF: Reorder fields to reduce padding.Benjamin Kramer2011-09-141-2/+2
| | | | llvm-svn: 139712
* DWARF: Improve indentation of DIE dumping so it's easier to see the structure.Benjamin Kramer2011-09-141-8/+8
| | | | llvm-svn: 139705
* llvm-dwarfdump: Make the "is debug info section" heuristic stricter so it ↵Benjamin Kramer2011-09-141-0/+7
| | | | | | | | | | doesn't accidentaly picks up the wrong section. Also add some validation code to the aranges section parser. Fixes PR10926. llvm-svn: 139701
* Don't rely in <algorithm> being pulled in transitively.Benjamin Kramer2011-09-141-0/+1
| | | | llvm-svn: 139684
* DWARF: Port support for parsing .debug_aranges section from LLDB and wire it ↵Benjamin Kramer2011-09-147-2/+551
| | | | | | | | | 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
* DebugInfo: Don't print DIEs multiple times.Benjamin Kramer2011-09-143-5/+5
| | | | llvm-svn: 139671
* Style & indentation tweaks.Benjamin Kramer2011-09-137-211/+201
| | | | llvm-svn: 139646
* I know copy&paste!Benjamin Kramer2011-09-131-1/+1
| | | | llvm-svn: 139628
* Sketch out a DWARF parser.Benjamin Kramer2011-09-1316-0/+1882
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
OpenPOWER on IntegriCloud