mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
Extend the dumping infrastructure to deal with additional
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). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171428 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -17,8 +17,7 @@ using namespace llvm;
|
||||
using namespace dwarf;
|
||||
|
||||
DataExtractor DWARFCompileUnit::getDebugInfoExtractor() const {
|
||||
return DataExtractor(Context.getInfoSection(),
|
||||
Context.isLittleEndian(), getAddressByteSize());
|
||||
return DataExtractor(InfoSection, isLittleEndian, AddrSize);
|
||||
}
|
||||
|
||||
bool DWARFCompileUnit::extract(DataExtractor debug_info, uint32_t *offset_ptr) {
|
||||
@@ -28,7 +27,6 @@ bool DWARFCompileUnit::extract(DataExtractor debug_info, uint32_t *offset_ptr) {
|
||||
|
||||
if (debug_info.isValidOffset(*offset_ptr)) {
|
||||
uint64_t abbrOffset;
|
||||
const DWARFDebugAbbrev *abbr = Context.getDebugAbbrev();
|
||||
Length = debug_info.getU32(offset_ptr);
|
||||
Version = debug_info.getU16(offset_ptr);
|
||||
abbrOffset = debug_info.getU32(offset_ptr);
|
||||
@@ -36,11 +34,11 @@ bool DWARFCompileUnit::extract(DataExtractor debug_info, uint32_t *offset_ptr) {
|
||||
|
||||
bool lengthOK = debug_info.isValidOffset(getNextCompileUnitOffset()-1);
|
||||
bool versionOK = DWARFContext::isSupportedVersion(Version);
|
||||
bool abbrOffsetOK = Context.getAbbrevSection().size() > abbrOffset;
|
||||
bool abbrOffsetOK = AbbrevSection.size() > abbrOffset;
|
||||
bool addrSizeOK = AddrSize == 4 || AddrSize == 8;
|
||||
|
||||
if (lengthOK && versionOK && addrSizeOK && abbrOffsetOK && abbr != NULL) {
|
||||
Abbrevs = abbr->getAbbreviationDeclarationSet(abbrOffset);
|
||||
if (lengthOK && versionOK && addrSizeOK && abbrOffsetOK && Abbrev != NULL) {
|
||||
Abbrevs = Abbrev->getAbbreviationDeclarationSet(abbrOffset);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -79,8 +77,7 @@ bool DWARFCompileUnit::extractRangeList(uint32_t RangeListOffset,
|
||||
DWARFDebugRangeList &RangeList) const {
|
||||
// Require that compile unit is extracted.
|
||||
assert(DieArray.size() > 0);
|
||||
DataExtractor RangesData(Context.getRangeSection(),
|
||||
Context.isLittleEndian(), AddrSize);
|
||||
DataExtractor RangesData(RangeSection, isLittleEndian, AddrSize);
|
||||
return RangeList.extract(RangesData, &RangeListOffset);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user