summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo/DWARFContext.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix the representation of debug line table in DebugInfo LLVM library,Alexey Samsonov2012-08-071-3/+1
| | | | | | | | | | | | | 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-191-3/+27
| | | | | | | | (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-171-2/+4
| | | | | | | | | | | 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-19/+31
| | | | | | | | | | 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
* Unweaken vtables as per ↵David Blaikie2011-12-201-0/+2
| | | | | | http://llvm.org/docs/CodingStandards.html#ll_virtual_anch llvm-svn: 146960
* DWARF: Reset the state after parsing a line table prologue and remove an ↵Benjamin Kramer2011-09-151-4/+2
| | | | | | 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-151-0/+49
| | | | | | 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-151-9/+19
| | | | | | | | 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-151-3/+14
| | | | llvm-svn: 139808
* DWARF: wire up .debug_str dumping.Benjamin Kramer2011-09-151-1/+12
| | | | llvm-svn: 139799
* DWARF: Add basic support for line tables.Benjamin Kramer2011-09-151-0/+15
| | | | | | 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-141-0/+2
| | | | | | | | is not available. Ported from LLDB. llvm-svn: 139732
* DWARF: Port support for parsing .debug_aranges section from LLDB and wire it ↵Benjamin Kramer2011-09-141-0/+22
| | | | | | | | | 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
* Sketch out a DWARF parser.Benjamin Kramer2011-09-131-0/+43
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