diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2020-07-31 21:22:58 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2020-07-31 21:22:58 +0000 |
commit | 5ffd83dbcc34f10e07f6d3e968ae6365869615f4 (patch) | |
tree | 0e9f5cf729dde39f949698fddef45a34e2bc7f44 /contrib/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.h | |
parent | 1799696096df87b52968b8996d00c91e0a5de8d9 (diff) | |
parent | cfca06d7963fa0909f90483b42a6d7d194d01e08 (diff) |
Notes
Diffstat (limited to 'contrib/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.h')
-rw-r--r-- | contrib/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.h | 78 |
1 files changed, 34 insertions, 44 deletions
diff --git a/contrib/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.h b/contrib/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.h index 43ce02ae0bc2..390fc62d09f8 100644 --- a/contrib/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.h +++ b/contrib/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.h @@ -8,26 +8,48 @@ #ifndef LLVM_TOOLS_LLVM_OBJDUMP_LLVM_OBJDUMP_H #define LLVM_TOOLS_LLVM_OBJDUMP_LLVM_OBJDUMP_H +#include "llvm/ADT/StringSet.h" #include "llvm/DebugInfo/DIContext.h" +#include "llvm/MC/MCDisassembler/MCDisassembler.h" +#include "llvm/Object/Archive.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/Compiler.h" #include "llvm/Support/DataTypes.h" -#include "llvm/Object/Archive.h" namespace llvm { class StringRef; namespace object { -class COFFObjectFile; -class COFFImportFile; class ELFObjectFileBase; class ELFSectionRef; class MachOObjectFile; class MachOUniversalBinary; class RelocationRef; -} +} // namespace object +namespace objdump { + +extern cl::opt<bool> ArchiveHeaders; extern cl::opt<bool> Demangle; +extern cl::opt<bool> Disassemble; +extern cl::opt<bool> DisassembleAll; +extern cl::opt<DIDumpType> DwarfDumpType; +extern cl::list<std::string> FilterSections; +extern cl::list<std::string> MAttrs; +extern cl::opt<std::string> MCPU; +extern cl::opt<bool> NoShowRawInsn; +extern cl::opt<bool> NoLeadingAddr; +extern cl::opt<bool> PrintImmHex; +extern cl::opt<bool> PrivateHeaders; +extern cl::opt<bool> Relocations; +extern cl::opt<bool> SectionHeaders; +extern cl::opt<bool> SectionContents; +extern cl::opt<bool> SymbolDescription; +extern cl::opt<bool> SymbolTable; +extern cl::opt<std::string> TripleName; +extern cl::opt<bool> UnwindInfo; + +extern StringSet<> FoundSectionSet; typedef std::function<bool(llvm::object::SectionRef const &)> FilterPredicate; @@ -93,52 +115,17 @@ private: SectionFilter ToolSectionFilter(llvm::object::ObjectFile const &O, uint64_t *Idx = nullptr); -Error getELFRelocationValueString(const object::ELFObjectFileBase *Obj, - const object::RelocationRef &Rel, - llvm::SmallVectorImpl<char> &Result); -Error getCOFFRelocationValueString(const object::COFFObjectFile *Obj, - const object::RelocationRef &Rel, - llvm::SmallVectorImpl<char> &Result); -Error getWasmRelocationValueString(const object::WasmObjectFile *Obj, - const object::RelocationRef &RelRef, - llvm::SmallVectorImpl<char> &Result); -Error getMachORelocationValueString(const object::MachOObjectFile *Obj, - const object::RelocationRef &RelRef, - llvm::SmallVectorImpl<char> &Result); - -uint64_t getELFSectionLMA(const object::ELFSectionRef& Sec); - bool isRelocAddressLess(object::RelocationRef A, object::RelocationRef B); -void parseInputMachO(StringRef Filename); -void parseInputMachO(object::MachOUniversalBinary *UB); -void printCOFFUnwindInfo(const object::COFFObjectFile *O); -void printMachOUnwindInfo(const object::MachOObjectFile *O); -void printMachOExportsTrie(const object::MachOObjectFile *O); -void printMachORebaseTable(object::MachOObjectFile *O); -void printMachOBindTable(object::MachOObjectFile *O); -void printMachOLazyBindTable(object::MachOObjectFile *O); -void printMachOWeakBindTable(object::MachOObjectFile *O); -void printELFFileHeader(const object::ObjectFile *O); -void printELFDynamicSection(const object::ObjectFile *Obj); -void printELFSymbolVersionInfo(const object::ObjectFile *Obj); -void printCOFFFileHeader(const object::ObjectFile *O); -void printCOFFSymbolTable(const object::COFFImportFile *I); -void printCOFFSymbolTable(const object::COFFObjectFile *O); -void printMachOFileHeader(const object::ObjectFile *O); -void printMachOLoadCommands(const object::ObjectFile *O); -void printWasmFileHeader(const object::ObjectFile *O); -void printExportsTrie(const object::ObjectFile *O); -void printRebaseTable(object::ObjectFile *O); -void printBindTable(object::ObjectFile *O); -void printLazyBindTable(object::ObjectFile *O); -void printWeakBindTable(object::ObjectFile *O); -void printRawClangAST(const object::ObjectFile *O); void printRelocations(const object::ObjectFile *O); void printDynamicRelocations(const object::ObjectFile *O); void printSectionHeaders(const object::ObjectFile *O); void printSectionContents(const object::ObjectFile *O); void printSymbolTable(const object::ObjectFile *O, StringRef ArchiveName, - StringRef ArchitectureName = StringRef()); + StringRef ArchitectureName = StringRef(), + bool DumpDynamic = false); +void printSymbol(const object::ObjectFile *O, const object::SymbolRef &Symbol, + StringRef FileName, StringRef ArchiveName, + StringRef ArchitectureName, bool DumpDynamic); LLVM_ATTRIBUTE_NORETURN void reportError(StringRef File, Twine Message); LLVM_ATTRIBUTE_NORETURN void reportError(Error E, StringRef FileName, StringRef ArchiveName = "", @@ -154,7 +141,10 @@ T unwrapOrError(Expected<T> EO, Ts &&... Args) { std::string getFileNameForError(const object::Archive::Child &C, unsigned Index); +SymbolInfoTy createSymbolInfo(const object::ObjectFile *Obj, + const object::SymbolRef &Symbol); +} // namespace objdump } // end namespace llvm #endif |