diff options
Diffstat (limited to 'lib/Object/MachOObject.cpp')
| -rw-r--r-- | lib/Object/MachOObject.cpp | 28 | 
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/Object/MachOObject.cpp b/lib/Object/MachOObject.cpp index 5e64d6323288c..9890febfb616c 100644 --- a/lib/Object/MachOObject.cpp +++ b/lib/Object/MachOObject.cpp @@ -12,6 +12,8 @@  #include "llvm/Support/MemoryBuffer.h"  #include "llvm/Support/Host.h"  #include "llvm/Support/SwapByteOrder.h" +#include "llvm/Support/raw_ostream.h" +#include "llvm/Support/Debug.h"  using namespace llvm;  using namespace llvm::object; @@ -340,3 +342,29 @@ void MachOObject::ReadSymbol64TableEntry(uint64_t SymbolTableOffset,                       Index * sizeof(macho::Symbol64TableEntry));    ReadInMemoryStruct(*this, Buffer->getBuffer(), Offset, Res);  } + +/* ** */ +// Object Dumping Facilities +void MachOObject::dump() const { print(dbgs()); dbgs() << '\n'; } +void MachOObject::dumpHeader() const { printHeader(dbgs()); dbgs() << '\n'; } + +void MachOObject::printHeader(raw_ostream &O) const { +  O << "('cputype', " << Header.CPUType << ")\n"; +  O << "('cpusubtype', " << Header.CPUSubtype << ")\n"; +  O << "('filetype', " << Header.FileType << ")\n"; +  O << "('num_load_commands', " << Header.NumLoadCommands << ")\n"; +  O << "('load_commands_size', " << Header.SizeOfLoadCommands << ")\n"; +  O << "('flag', " << Header.Flags << ")\n"; +   +  // Print extended header if 64-bit. +  if (is64Bit()) +    O << "('reserved', " << Header64Ext.Reserved << ")\n"; +} + +void MachOObject::print(raw_ostream &O) const { +  O << "Header:\n"; +  printHeader(O); +  O << "Load Commands:\n"; +   +  O << "Buffer:\n"; +}  | 
