summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo/DWARFDebugInfoEntry.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [DWARF parser] Teach DIContext to fetch short (non-linkage) function names ↵Alexey Samsonov2014-05-171-7/+9
| | | | | | | | | | for a given address. Change --functions option in llvm-symbolizer tool to accept values "none", "short" or "linkage". Update the tests and docs accordingly. llvm-svn: 209050
* [DWARF parser] Use enums instead of bitfields in DILineInfoSpecifier.Alexey Samsonov2014-05-151-4/+6
| | | | | | | | | | | | It is more appropriate than the current situation, when one flag (AbsoluteFilePath) is relevant only if another flag is set. This refactoring would also simplify fetching the short function name (stored in DW_AT_name) instead of a linkage name returned currently. No functionality change. llvm-svn: 208921
* DebugInfo: Remove some initializer lists to make MSVC happy again.Benjamin Kramer2014-04-181-3/+3
| | | | llvm-svn: 206632
* [DWARF parser] Refactor fetching DIE address ranges.Alexey Samsonov2014-04-181-26/+34
| | | | | | | | | | Add a helper method to get address ranges specified in a DIE (either by DW_AT_low_pc/DW_AT_high_pc, or by DW_AT_ranges). Use it to untangle and simplify the code. No functionality change. llvm-svn: 206624
* [C++11] More 'nullptr' conversion. In some cases just using a boolean check ↵Craig Topper2014-04-151-7/+8
| | | | | | instead of comparing to nullptr. llvm-svn: 206252
* [C++11] Convert DWARF parser to range-based for loopsAlexey Samsonov2014-03-131-7/+4
| | | | llvm-svn: 203766
* Merge DWARFDIE::extractFast and DWARFDIE::extract into one function.Alexey Samsonov2013-10-281-50/+10
| | | | | | | Complicated CU-DIE-specific logic in the latter was never used, and it makes sense to have safety checks for broken dwarf in the former. llvm-svn: 193563
* DWARF parser: Use ArrayRef to represent form sizes and simplify ↵Alexey Samsonov2013-10-281-8/+5
| | | | | | DWARFDIE::extractFast() interface. No functionality change. llvm-svn: 193560
* DWARF parser: since DWARF4, DW_AT_high_pc may be a constant representing ↵Alexey Samsonov2013-10-281-4/+10
| | | | | | function size llvm-svn: 193555
* DebugInfo: Introduce the notion of "form classes"Alexey Samsonov2013-10-281-19/+36
| | | | | | | | | | | | | | | | | | Summary: Use DWARF4 table of form classes to fetch attributes from DIE in a more consistent way. This shouldn't change the functionality and serves as a refactoring for upcoming change: DW_AT_high_pc has different semantics depending on its form class. Reviewers: dblaikie, echristo Reviewed By: echristo CC: echristo, llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1961 llvm-svn: 193553
* [DebugInfo] Delete dead code, simplify and fix code style for some existing ↵Alexey Samsonov2013-10-171-37/+23
| | | | | | code. No functionality change. llvm-svn: 192894
* Exract most of DWARFCompileUnit into a new DWARFUnit to prepare for the ↵David Blaikie2013-09-231-100/+77
| | | | | | coming DWARFTypeUnit. llvm-svn: 191233
* Add support for DebugFission to DWARF parserAlexey Samsonov2013-08-271-31/+32
| | | | | | | | | | | | | | | | | | | Summary: 1) Make llvm-symbolizer properly symbolize files with split debug info (by using stanalone .dwo files). 2) Make DWARFCompileUnit parse and store corresponding .dwo file, if necessary. 3) Make bits of DWARF parsing more CompileUnit-oriented. Reviewers: echristo Reviewed By: echristo CC: bkramer, llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1164 llvm-svn: 189329
* llvm-dwarfdump: Do not include address offsets for attributes, only for tagsDavid Blaikie2013-08-191-1/+1
| | | | | | | | | This reduces the noise in diffs making it more likely that, at least for LLVM revision-over-revision, diffs will actually yield usable results. This is consistent with objdump's DWARF dumping behavior. llvm-svn: 188650
* Store compile unit corresponding to each chain of inlined debug info ↵Alexey Samsonov2013-08-061-7/+6
| | | | | | entries. No functionality change. llvm-svn: 187792
* Create a stub for DWARF parser unittestsAlexey Samsonov2013-04-171-1/+1
| | | | | | | Moves one DWARF-specific header to include/llvm/DebugInfo from lib/. Add a short unittest for r179095. llvm-svn: 179678
* DWARF parser: remove duplicated code and fix code style in DIE extractors.Alexey Samsonov2013-04-081-265/+73
| | | | llvm-svn: 179023
* Fix the assembly and dissassembly of DW_FORM_sec_offset. Found this byEric Christopher2013-01-171-8/+4
| | | | | | | | | changing both the string of the dwo_name to be correct and the type of the statement list. Testcases all around. llvm-svn: 172699
* Add support for separating strings for the split debug info DWARF5Eric Christopher2013-01-071-2/+11
| | | | | | | | | | | | | proposal. This leaves the strings in the skeleton die as strp, but in all dwo files they're accessed now via DW_FORM_GNU_str_index. Add support for dumping these sections and modify the fission-cu.ll testcase to have the correct strings and form. Fix a small bug in the fixed form sizes routine that involved out of array accesses for the table and add a FIXME in the extractFast routine to fix this up. llvm-svn: 171779
* Update comment.Eric Christopher2013-01-071-1/+1
| | | | llvm-svn: 171689
* Extend the dumping infrastructure to deal with additionalEric Christopher2013-01-021-2/+1
| | | | | | | | | | | | sections for debug info. These are some of the dwo sections from the DWARF5 split debug info proposal. Update the fission-cu.ll testcase to show what we should be able to dump more of now. Work in progress: Ultimately the relocations will be gone for the dwo section and the strings will be a different form (as well as the rest of the sections will be included). llvm-svn: 171428
* Reformat and 80-column this. It's not strictly conformingEric Christopher2012-10-301-21/+29
| | | | | | yet, but it's better. llvm-svn: 167053
* Add support for fetching inlining context (stack of source code locations)Alexey Samsonov2012-09-041-32/+88
| | | | | | | | | | | by instruction address from DWARF. Add --inlining flag to llvm-dwarfdump to demonstrate and test this functionality, so that "llvm-dwarfdump --inlining --address=0x..." now works much like "addr2line -i 0x...", provided that the binary has debug info (Clang's -gline-tables-only *is* enough). llvm-svn: 163128
* Add support for some missing DW_FORM_*.Eric Christopher2012-08-241-0/+28
| | | | | TODO: Fix code duplication and coding style. llvm-svn: 162525
* Formatting.Eric Christopher2012-08-241-1/+1
| | | | llvm-svn: 162524
* 80-col.Eric Christopher2012-08-231-1/+1
| | | | llvm-svn: 162422
* Improve behavior of DebugInfoEntryMinimal::getSubprogramName() introduced in ↵Alexey Samsonov2012-07-171-24/+27
| | | | | | | | | | | 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
* This patch extends the libLLVMDebugInfo which contains a minimalistic DWARF ↵Alexey Samsonov2012-07-021-0/+48
| | | | | | | | | | 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
* More dead code removal (using -Wunreachable-code)David Blaikie2012-01-201-2/+0
| | | | llvm-svn: 148578
* Reduce the offsets in DwarfDebugInfoEntry to 32 bit, they're printed with %x andBenjamin Kramer2011-11-051-1/+1
| | | | | | | | that breaks on big-endian machines. I have to clean up the 32/64 bit confusion in libDebugInfo some day. llvm-svn: 143812
* DWARF: wire up .debug_str dumping.Benjamin Kramer2011-09-151-1/+1
| | | | llvm-svn: 139799
* DWARF: Make DIE printing more bulletproof.Benjamin Kramer2011-09-151-5/+18
| | | | llvm-svn: 139786
* DWARF: Generate the address lookup table from the DIE tree if .debug_aranges ↵Benjamin Kramer2011-09-141-1/+25
| | | | | | | | is not available. Ported from LLDB. llvm-svn: 139732
* DWARF: Improve indentation of DIE dumping so it's easier to see the structure.Benjamin Kramer2011-09-141-8/+8
| | | | llvm-svn: 139705
* DebugInfo: Don't print DIEs multiple times.Benjamin Kramer2011-09-141-3/+1
| | | | llvm-svn: 139671
* Style & indentation tweaks.Benjamin Kramer2011-09-131-2/+1
| | | | llvm-svn: 139646
* Sketch out a DWARF parser.Benjamin Kramer2011-09-131-0/+410
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