mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-14 14:24:05 +00:00
llvm-readobj: Add support for dumping the DOS header in PE files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221333 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -63,6 +63,7 @@ private:
|
||||
void printRelocation(const SectionRef &Section, const RelocationRef &Reloc);
|
||||
void printDataDirectory(uint32_t Index, const std::string &FieldName);
|
||||
|
||||
void printDOSHeader(const dos_header *DH);
|
||||
template <class PEHeader> void printPEHeader(const PEHeader *Hdr);
|
||||
void printBaseOfDataField(const pe32_header *Hdr);
|
||||
void printBaseOfDataField(const pe32plus_header *Hdr);
|
||||
@ -382,6 +383,30 @@ void COFFDumper::printFileHeaders() {
|
||||
return;
|
||||
if (PEPlusHeader)
|
||||
printPEHeader<pe32plus_header>(PEPlusHeader);
|
||||
|
||||
if (const dos_header *DH = Obj->getDOSHeader())
|
||||
printDOSHeader(DH);
|
||||
}
|
||||
|
||||
void COFFDumper::printDOSHeader(const dos_header *DH) {
|
||||
DictScope D(W, "DOSHeader");
|
||||
W.printString("Magic", StringRef(DH->Magic, sizeof(DH->Magic)));
|
||||
W.printNumber("UsedBytesInTheLastPage", DH->UsedBytesInTheLastPage);
|
||||
W.printNumber("FileSizeInPages", DH->FileSizeInPages);
|
||||
W.printNumber("NumberOfRelocationItems", DH->NumberOfRelocationItems);
|
||||
W.printNumber("HeaderSizeInParagraphs", DH->HeaderSizeInParagraphs);
|
||||
W.printNumber("MinimumExtraParagraphs", DH->MinimumExtraParagraphs);
|
||||
W.printNumber("MaximumExtraParagraphs", DH->MaximumExtraParagraphs);
|
||||
W.printNumber("InitialRelativeSS", DH->InitialRelativeSS);
|
||||
W.printNumber("InitialSP", DH->InitialSP);
|
||||
W.printNumber("Checksum", DH->Checksum);
|
||||
W.printNumber("InitialIP", DH->InitialIP);
|
||||
W.printNumber("InitialRelativeCS", DH->InitialRelativeCS);
|
||||
W.printNumber("AddressOfRelocationTable", DH->AddressOfRelocationTable);
|
||||
W.printNumber("OverlayNumber", DH->OverlayNumber);
|
||||
W.printNumber("OEMid", DH->OEMid);
|
||||
W.printNumber("OEMinfo", DH->OEMinfo);
|
||||
W.printNumber("AddressOfNewExeHeader", DH->AddressOfNewExeHeader);
|
||||
}
|
||||
|
||||
template <class PEHeader>
|
||||
|
Reference in New Issue
Block a user