mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
[llvm-readobj] Simplify usage of -codeview flag
llvm-svn: 255790
This commit is contained in:
parent
620dbe5571
commit
958c5136d5
@ -60,6 +60,7 @@ public:
|
||||
void printCOFFExports() override;
|
||||
void printCOFFDirectives() override;
|
||||
void printCOFFBaseReloc() override;
|
||||
void printCodeViewDebugInfo() override;
|
||||
void printStackMap() const override;
|
||||
private:
|
||||
void printSymbol(const SymbolRef &Sym);
|
||||
@ -71,7 +72,7 @@ private:
|
||||
void printBaseOfDataField(const pe32_header *Hdr);
|
||||
void printBaseOfDataField(const pe32plus_header *Hdr);
|
||||
|
||||
void printCodeViewDebugInfo(const SectionRef &Section);
|
||||
void printCodeViewSection(const SectionRef &Section);
|
||||
|
||||
void printCodeViewSymbolsSubsection(StringRef Subsection,
|
||||
const SectionRef &Section,
|
||||
@ -474,7 +475,16 @@ void COFFDumper::printBaseOfDataField(const pe32_header *Hdr) {
|
||||
|
||||
void COFFDumper::printBaseOfDataField(const pe32plus_header *) {}
|
||||
|
||||
void COFFDumper::printCodeViewDebugInfo(const SectionRef &Section) {
|
||||
void COFFDumper::printCodeViewDebugInfo() {
|
||||
for (const SectionRef &S : Obj->sections()) {
|
||||
StringRef SecName;
|
||||
error(S.getName(SecName));
|
||||
if (SecName == ".debug$S")
|
||||
printCodeViewSection(S);
|
||||
}
|
||||
}
|
||||
|
||||
void COFFDumper::printCodeViewSection(const SectionRef &Section) {
|
||||
StringRef Data;
|
||||
error(Section.getContents(Data));
|
||||
|
||||
@ -516,8 +526,7 @@ void COFFDumper::printCodeViewDebugInfo(const SectionRef &Section) {
|
||||
|
||||
switch (SubSectionType) {
|
||||
case COFF::DEBUG_SYMBOL_SUBSECTION:
|
||||
if (opts::SectionSymbols)
|
||||
printCodeViewSymbolsSubsection(Contents, Section, Offset);
|
||||
printCodeViewSymbolsSubsection(Contents, Section, Offset);
|
||||
break;
|
||||
case COFF::DEBUG_LINE_TABLE_SUBSECTION: {
|
||||
// Holds a PC to file:line table. Some data to parse this subsection is
|
||||
@ -777,9 +786,6 @@ void COFFDumper::printSections() {
|
||||
}
|
||||
}
|
||||
|
||||
if (Name == ".debug$S" && opts::CodeView)
|
||||
printCodeViewDebugInfo(Sec);
|
||||
|
||||
if (opts::SectionData &&
|
||||
!(Section->Characteristics & COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA)) {
|
||||
StringRef Data;
|
||||
|
@ -56,6 +56,7 @@ public:
|
||||
virtual void printCOFFExports() { }
|
||||
virtual void printCOFFDirectives() { }
|
||||
virtual void printCOFFBaseReloc() { }
|
||||
virtual void printCodeViewDebugInfo() { }
|
||||
|
||||
// Only implemented for MachO.
|
||||
virtual void printMachODataInCode() { }
|
||||
|
@ -354,6 +354,8 @@ static void dumpObject(const ObjectFile *Obj) {
|
||||
Dumper->printCOFFDirectives();
|
||||
if (opts::COFFBaseRelocs)
|
||||
Dumper->printCOFFBaseReloc();
|
||||
if (opts::CodeView)
|
||||
Dumper->printCodeViewDebugInfo();
|
||||
}
|
||||
if (Obj->isMachO()) {
|
||||
if (opts::MachODataInCode)
|
||||
|
Loading…
x
Reference in New Issue
Block a user