mirror of
https://github.com/RPCS3/llvm.git
synced 2025-04-12 19:18:48 +00:00
Make the dumper's output for variable ranges easier to read
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259804 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1268fa4230
commit
cae51a87c8
@ -92,7 +92,7 @@ private:
|
||||
void printLocalVariableAddrRange(const LocalVariableAddrRange &Range,
|
||||
const coff_section *Sec,
|
||||
StringRef SectionContents);
|
||||
void printLocalVariableAddrGap(const LocalVariableAddrGap &Gap);
|
||||
void printLocalVariableAddrGap(StringRef SymData);
|
||||
|
||||
void printCodeViewSymbolsSubsection(StringRef Subsection,
|
||||
const SectionRef &Section,
|
||||
@ -1511,11 +1511,7 @@ void COFFDumper::printCodeViewSymbolsSubsection(StringRef Subsection,
|
||||
W.printNumber("MayHaveNoName", DefRangeRegister->MayHaveNoName);
|
||||
printLocalVariableAddrRange(DefRangeRegister->Range, Sec,
|
||||
SectionContents);
|
||||
while (!SymData.empty()) {
|
||||
const LocalVariableAddrGap *Gap;
|
||||
error(consumeObject(SymData, Gap));
|
||||
printLocalVariableAddrGap(*Gap);
|
||||
}
|
||||
printLocalVariableAddrGap(SymData);
|
||||
break;
|
||||
}
|
||||
case S_DEFRANGE_SUBFIELD_REGISTER: {
|
||||
@ -1529,11 +1525,7 @@ void COFFDumper::printCodeViewSymbolsSubsection(StringRef Subsection,
|
||||
DefRangeSubfieldRegisterSym->OffsetInParent);
|
||||
printLocalVariableAddrRange(DefRangeSubfieldRegisterSym->Range, Sec,
|
||||
SectionContents);
|
||||
while (!SymData.empty()) {
|
||||
const LocalVariableAddrGap *Gap;
|
||||
error(consumeObject(SymData, Gap));
|
||||
printLocalVariableAddrGap(*Gap);
|
||||
}
|
||||
printLocalVariableAddrGap(SymData);
|
||||
break;
|
||||
}
|
||||
case S_DEFRANGE_FRAMEPOINTER_REL: {
|
||||
@ -1543,11 +1535,7 @@ void COFFDumper::printCodeViewSymbolsSubsection(StringRef Subsection,
|
||||
W.printNumber("Offset", DefRangeFramePointerRel->Offset);
|
||||
printLocalVariableAddrRange(DefRangeFramePointerRel->Range, Sec,
|
||||
SectionContents);
|
||||
while (!SymData.empty()) {
|
||||
const LocalVariableAddrGap *Gap;
|
||||
error(consumeObject(SymData, Gap));
|
||||
printLocalVariableAddrGap(*Gap);
|
||||
}
|
||||
printLocalVariableAddrGap(SymData);
|
||||
break;
|
||||
}
|
||||
case S_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE: {
|
||||
@ -1568,11 +1556,7 @@ void COFFDumper::printCodeViewSymbolsSubsection(StringRef Subsection,
|
||||
W.printNumber("OffsetInParent", DefRangeRegisterRel->offsetInParent());
|
||||
printLocalVariableAddrRange(DefRangeRegisterRel->Range, Sec,
|
||||
SectionContents);
|
||||
while (!SymData.empty()) {
|
||||
const LocalVariableAddrGap *Gap;
|
||||
error(consumeObject(SymData, Gap));
|
||||
printLocalVariableAddrGap(*Gap);
|
||||
}
|
||||
printLocalVariableAddrGap(SymData);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1892,14 +1876,20 @@ void COFFDumper::printTypeIndex(StringRef FieldName, TypeIndex TI) {
|
||||
void COFFDumper::printLocalVariableAddrRange(
|
||||
const LocalVariableAddrRange &Range, const coff_section *Sec,
|
||||
StringRef SectionContents) {
|
||||
DictScope S(W, "LocalVariableAddrRange");
|
||||
printRelocatedField("OffsetStart", Sec, SectionContents, &Range.OffsetStart);
|
||||
W.printHex("ISectStart", Range.ISectStart);
|
||||
W.printNumber("Range", Range.Range);
|
||||
}
|
||||
|
||||
void COFFDumper::printLocalVariableAddrGap(const LocalVariableAddrGap &Gap) {
|
||||
W.printNumber("GapStartOffset", Gap.GapStartOffset);
|
||||
W.printNumber("Range", Gap.Range);
|
||||
void COFFDumper::printLocalVariableAddrGap(StringRef SymData) {
|
||||
while (!SymData.empty()) {
|
||||
const LocalVariableAddrGap *Gap;
|
||||
error(consumeObject(SymData, Gap));
|
||||
ListScope S(W, "LocalVariableAddrGap");
|
||||
W.printNumber("GapStartOffset", Gap->GapStartOffset);
|
||||
W.printNumber("Range", Gap->Range);
|
||||
}
|
||||
}
|
||||
|
||||
StringRef COFFDumper::getFileNameForFileOffset(uint32_t FileOffset) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user