llvm-project/llvm/lib/DebugInfo
Alexey Samsonov 0670cfaf01 [DWARF parser] Fix broken address ranges construction.
Previous algorithm for constructing [Address ranges]->[Compile Units]
mapping was wrong. It somewhat relied on the assumption that address ranges
for different compile units may not overlap. It is not so.
For example, two compile units may contain the definition of the same
linkonce_odr function. These definitions will be merged at link-time,
resulting in equivalent .debug_ranges entries for both these units

Instead of sorting and merging original address ranges (from .debug_ranges
and .debug_aranges), implement a different approach: save endpoints
of all ranges, and then use a sweep-line approach to construct
the desired mapping. If we find that certain address maps to
several compilation units, we just pick any of them.

llvm-svn: 210860
2014-06-12 23:58:49 +00:00
..
CMakeLists.txt llvm-dwarfdump/libDebugInfo support for type units 2013-09-23 22:44:47 +00:00
DIContext.cpp Rewrite DIContext interface to take an object. Update all callers. 2012-11-12 21:40:38 +00:00
DWARFAbbreviationDeclaration.cpp Use ctor instead of initializer list to appease Windows buildbots 2014-03-14 10:37:36 +00:00
DWARFAbbreviationDeclaration.h Use ctor instead of initializer list to appease Windows buildbots 2014-03-14 10:37:36 +00:00
DWARFCompileUnit.cpp Exract most of DWARFCompileUnit into a new DWARFUnit to prepare for the coming DWARFTypeUnit. 2013-09-23 22:44:40 +00:00
DWARFCompileUnit.h [DWARF parser] DWARFUnit ctor doesn't need both parsed and raw .debug_abbrev section. Remove the former. 2014-04-24 22:51:03 +00:00
DWARFContext.cpp Don't use 'using std::error_code' in include/llvm. 2014-06-12 21:46:39 +00:00
DWARFContext.h Simplify compression API by decompressing into a SmallVector rather than a MemoryBuffer 2014-04-05 21:26:44 +00:00
DWARFDebugAbbrev.cpp [DWARF parser] Cleanup code in DWARFDebugAbbrev. 2014-04-25 21:10:56 +00:00
DWARFDebugAbbrev.h [DWARF parser] Cleanup code in DWARFDebugAbbrev. 2014-04-25 21:10:56 +00:00
DWARFDebugArangeSet.cpp Make some assertions on constant expressions static. 2014-03-15 18:47:07 +00:00
DWARFDebugArangeSet.h [DWARF parser] Simplify DWARFDebugAranges generation. 2014-04-28 22:27:46 +00:00
DWARFDebugAranges.cpp [DWARF parser] Fix broken address ranges construction. 2014-06-12 23:58:49 +00:00
DWARFDebugAranges.h [DWARF parser] Fix broken address ranges construction. 2014-06-12 23:58:49 +00:00
DWARFDebugFrame.cpp [DWARF parser] DWARFDebugFrame: Make FrameEntry struct smaller. 2014-04-28 23:00:06 +00:00
DWARFDebugFrame.h [DWARF parser] DWARFDebugFrame: use unique_ptr instead of raw pointer 2014-04-28 22:52:24 +00:00
DWARFDebugInfoEntry.cpp [DWARF parser] Teach DIContext to fetch short (non-linkage) function names for a given address. 2014-05-17 00:07:48 +00:00
DWARFDebugInfoEntry.h [DWARF parser] Use enums instead of bitfields in DILineInfoSpecifier. 2014-05-15 21:24:32 +00:00
DWARFDebugLine.cpp [DWARF parser] Use enums instead of bitfields in DILineInfoSpecifier. 2014-05-15 21:24:32 +00:00
DWARFDebugLine.h [DWARF parser] Use enums instead of bitfields in DILineInfoSpecifier. 2014-05-15 21:24:32 +00:00
DWARFDebugLoc.cpp DebugInfo: Support debug_loc under fission 2014-03-25 01:44:02 +00:00
DWARFDebugLoc.h DebugInfo: Support debug_loc under fission 2014-03-25 01:44:02 +00:00
DWARFDebugRangeList.cpp [DWARF parser] Refactor fetching DIE address ranges. 2014-04-18 17:25:46 +00:00
DWARFDebugRangeList.h [DWARF parser] Refactor fetching DIE address ranges. 2014-04-18 17:25:46 +00:00
DWARFFormValue.cpp [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 06:32:26 +00:00
DWARFRelocMap.h Fix a warning in the new DWARFheader. Add a new line at the end of the file. 2013-01-25 22:57:05 +00:00
DWARFTypeUnit.cpp DWARFTypeUnit::dump(): Use PRIx64 to format uint64_t. 2013-09-24 03:23:07 +00:00
DWARFTypeUnit.h [DWARF parser] Make a few methods non-public 2014-04-24 23:08:56 +00:00
DWARFUnit.cpp [llvm-symbolizer] Fix parsing DW_AT_ranges in Fission skeleton compile unit DIEs. 2014-06-12 18:52:35 +00:00
DWARFUnit.h [C++] Use 'nullptr'. 2014-04-28 04:05:08 +00:00
LLVMBuild.txt libDebugInfo depends on libObject nowadays. 2013-05-09 13:48:26 +00:00
Makefile
module.modulemap [modules] Add module maps for LLVM. These are not quite ready for prime-time 2014-05-21 02:46:14 +00:00