4b4db40174
Summary: Summary: Update DWARF location lists in .debug_loc and pointers to them in .debug_info so that gdb can print variables which change location during their lifetime. The following changes were made: - Refactored BasicBlockOffsetRanges to allow ranges to be tied to binary information (so that we can reuse it for location lists) - Implemented range compression optimization in BasicBlockOffsetRanges (needed otherwise too much data was being generated). - Added representation for location lists (LocationList.h, BinaryContext.h) - Implemented .debug_loc serializer that keeps the updated offsets (DebugLocWriter.{h,cpp}) - After disassembly, traverse entries in .debug_loc and save them in context (BinaryContext.cpp) - After optimizations, serialize .debug_loc and update pointers in .debug_info (RewriteInstance.cpp) (cherry picked from FBD3130682) |
||
---|---|---|
.. | ||
BasicBlockOffsetRanges.cpp | ||
BasicBlockOffsetRanges.h | ||
BinaryBasicBlock.cpp | ||
BinaryBasicBlock.h | ||
BinaryContext.cpp | ||
BinaryContext.h | ||
BinaryFunction.cpp | ||
BinaryFunction.h | ||
BinaryPatcher.cpp | ||
BinaryPatcher.h | ||
CMakeLists.txt | ||
DataReader.cpp | ||
DataReader.h | ||
DebugLineTableRowRef.cpp | ||
DebugLineTableRowRef.h | ||
DebugLocWriter.cpp | ||
DebugLocWriter.h | ||
DebugRangesSectionsWriter.cpp | ||
DebugRangesSectionsWriter.h | ||
Exceptions.cpp | ||
Exceptions.h | ||
LexicalBlock.h | ||
llvm-bolt.cpp | ||
LLVMBuild.txt | ||
LocationList.h | ||
README.md | ||
RewriteInstance.cpp | ||
RewriteInstance.h |