// // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef LLVM_TOOLS_LLVM_OBJDUMP_LLVM_OBJDUMP_H #define LLVM_TOOLS_LLVM_OBJDUMP_LLVM_OBJDUMP_H #include "llvm/ADT/StringRef.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/DataTypes.h" namespace llvm { namespace object { class COFFObjectFile; class MachOObjectFile; class ObjectFile; class RelocationRef; } extern cl::opt TripleName; extern cl::opt ArchName; extern cl::opt MCPU; extern cl::list MAttrs; extern cl::list DumpSections; extern cl::opt Raw; extern cl::opt Disassemble; extern cl::opt NoShowRawInsn; extern cl::opt PrivateHeaders; extern cl::opt ExportsTrie; extern cl::opt Rebase; extern cl::opt Bind; extern cl::opt LazyBind; extern cl::opt WeakBind; extern cl::opt UniversalHeaders; extern cl::opt ArchiveHeaders; extern cl::opt IndirectSymbols; extern cl::opt DataInCode; extern cl::opt LinkOptHints; extern cl::opt InfoPlist; extern cl::opt DylibsUsed; extern cl::opt DylibId; extern cl::opt ObjcMetaData; extern cl::opt DisSymName; extern cl::opt NonVerbose; extern cl::opt Relocations; extern cl::opt SectionHeaders; extern cl::opt SectionContents; extern cl::opt SymbolTable; extern cl::opt UnwindInfo; // Various helper functions. bool error(std::error_code ec); bool RelocAddressLess(object::RelocationRef a, object::RelocationRef b); void DumpBytes(ArrayRef bytes); void ParseInputMachO(StringRef Filename); void printCOFFUnwindInfo(const object::COFFObjectFile* o); void printMachOUnwindInfo(const object::MachOObjectFile* o); void printMachOExportsTrie(const object::MachOObjectFile* o); void printMachORebaseTable(const object::MachOObjectFile* o); void printMachOBindTable(const object::MachOObjectFile* o); void printMachOLazyBindTable(const object::MachOObjectFile* o); void printMachOWeakBindTable(const object::MachOObjectFile* o); void printELFFileHeader(const object::ObjectFile *o); void printCOFFFileHeader(const object::ObjectFile *o); void printMachOFileHeader(const object::ObjectFile *o); void printExportsTrie(const object::ObjectFile *o); void printRebaseTable(const object::ObjectFile *o); void printBindTable(const object::ObjectFile *o); void printLazyBindTable(const object::ObjectFile *o); void printWeakBindTable(const object::ObjectFile *o); void PrintRelocations(const object::ObjectFile *o); void PrintSectionHeaders(const object::ObjectFile *o); void PrintSectionContents(const object::ObjectFile *o); void PrintSymbolTable(const object::ObjectFile *o); } // end namespace llvm #endif