llvm-objdump.h 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. //
  2. // The LLVM Compiler Infrastructure
  3. //
  4. // This file is distributed under the University of Illinois Open Source
  5. // License. See LICENSE.TXT for details.
  6. //
  7. //===----------------------------------------------------------------------===//
  8. #ifndef LLVM_TOOLS_LLVM_OBJDUMP_LLVM_OBJDUMP_H
  9. #define LLVM_TOOLS_LLVM_OBJDUMP_LLVM_OBJDUMP_H
  10. #include "llvm/ADT/StringRef.h"
  11. #include "llvm/Support/CommandLine.h"
  12. #include "llvm/Support/DataTypes.h"
  13. namespace llvm {
  14. namespace object {
  15. class COFFObjectFile;
  16. class MachOObjectFile;
  17. class ObjectFile;
  18. class RelocationRef;
  19. }
  20. extern cl::opt<std::string> TripleName;
  21. extern cl::opt<std::string> ArchName;
  22. extern cl::opt<std::string> MCPU;
  23. extern cl::list<std::string> MAttrs;
  24. extern cl::list<std::string> DumpSections;
  25. extern cl::opt<bool> Disassemble;
  26. extern cl::opt<bool> NoShowRawInsn;
  27. extern cl::opt<bool> PrivateHeaders;
  28. extern cl::opt<bool> ExportsTrie;
  29. extern cl::opt<bool> Rebase;
  30. extern cl::opt<bool> Bind;
  31. extern cl::opt<bool> LazyBind;
  32. extern cl::opt<bool> WeakBind;
  33. extern cl::opt<bool> RawClangAST;
  34. extern cl::opt<bool> UniversalHeaders;
  35. extern cl::opt<bool> ArchiveHeaders;
  36. extern cl::opt<bool> IndirectSymbols;
  37. extern cl::opt<bool> DataInCode;
  38. extern cl::opt<bool> LinkOptHints;
  39. extern cl::opt<bool> InfoPlist;
  40. extern cl::opt<bool> DylibsUsed;
  41. extern cl::opt<bool> DylibId;
  42. extern cl::opt<bool> ObjcMetaData;
  43. extern cl::opt<std::string> DisSymName;
  44. extern cl::opt<bool> NonVerbose;
  45. extern cl::opt<bool> Relocations;
  46. extern cl::opt<bool> SectionHeaders;
  47. extern cl::opt<bool> SectionContents;
  48. extern cl::opt<bool> SymbolTable;
  49. extern cl::opt<bool> UnwindInfo;
  50. extern cl::opt<bool> PrintImmHex;
  51. // Various helper functions.
  52. bool error(std::error_code ec);
  53. bool RelocAddressLess(object::RelocationRef a, object::RelocationRef b);
  54. void ParseInputMachO(StringRef Filename);
  55. void printCOFFUnwindInfo(const object::COFFObjectFile* o);
  56. void printMachOUnwindInfo(const object::MachOObjectFile* o);
  57. void printMachOExportsTrie(const object::MachOObjectFile* o);
  58. void printMachORebaseTable(const object::MachOObjectFile* o);
  59. void printMachOBindTable(const object::MachOObjectFile* o);
  60. void printMachOLazyBindTable(const object::MachOObjectFile* o);
  61. void printMachOWeakBindTable(const object::MachOObjectFile* o);
  62. void printELFFileHeader(const object::ObjectFile *o);
  63. void printCOFFFileHeader(const object::ObjectFile *o);
  64. void printMachOFileHeader(const object::ObjectFile *o);
  65. void printExportsTrie(const object::ObjectFile *o);
  66. void printRebaseTable(const object::ObjectFile *o);
  67. void printBindTable(const object::ObjectFile *o);
  68. void printLazyBindTable(const object::ObjectFile *o);
  69. void printWeakBindTable(const object::ObjectFile *o);
  70. void printRawClangAST(const object::ObjectFile *o);
  71. void PrintRelocations(const object::ObjectFile *o);
  72. void PrintSectionHeaders(const object::ObjectFile *o);
  73. void PrintSectionContents(const object::ObjectFile *o);
  74. void PrintSymbolTable(const object::ObjectFile *o);
  75. } // end namespace llvm
  76. #endif