summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Object/MachOObject.cpp
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2011-04-03 23:51:47 +0000
committerEric Christopher <echristo@apple.com>2011-04-03 23:51:47 +0000
commit19ea5ae81ad97bba9002c2910afac55154498aa5 (patch)
treeca69577649ff69581bc549b5164073705bf90108 /llvm/lib/Object/MachOObject.cpp
parentc56d2e8fd0fd768f3151c8fbed70184817e179a0 (diff)
downloadbcm5719-llvm-19ea5ae81ad97bba9002c2910afac55154498aa5.tar.gz
bcm5719-llvm-19ea5ae81ad97bba9002c2910afac55154498aa5.zip
Start migrating mach-o dumping facilities to the object file out of a
separate executable. llvm-svn: 128801
Diffstat (limited to 'llvm/lib/Object/MachOObject.cpp')
-rw-r--r--llvm/lib/Object/MachOObject.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/llvm/lib/Object/MachOObject.cpp b/llvm/lib/Object/MachOObject.cpp
index 5e64d632328..9890febfb61 100644
--- a/llvm/lib/Object/MachOObject.cpp
+++ b/llvm/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";
+}
OpenPOWER on IntegriCloud