diff options
author | Matt Davis <Matthew.Davis@sony.com> | 2019-02-01 18:51:10 +0000 |
---|---|---|
committer | Matt Davis <Matthew.Davis@sony.com> | 2019-02-01 18:51:10 +0000 |
commit | 50ca8edb1a0d94e057a28ae792e3b756bd08d809 (patch) | |
tree | 999b6b97b1b82efc130184b881f94f2b4689eb8b /llvm/tools/llvm-readobj/ObjDumper.h | |
parent | 25b4c4ceb6861c4564bcb5280fa81805cb9cca80 (diff) | |
download | bcm5719-llvm-50ca8edb1a0d94e057a28ae792e3b756bd08d809.tar.gz bcm5719-llvm-50ca8edb1a0d94e057a28ae792e3b756bd08d809.zip |
[llvm-readobj] Add a flag to dump just the section-to-segment mapping.
Summary:
The following patch introduces a new function `printSectionMapping` which is responsible for dumping just the section-to-segment mapping.
This patch also introduces a n option `-section-mapping` that outputs that mapping without the program headers.
Previously, this functionality was controlled by `printProgramHeaders`, and the output from `-program-headers` has not been changed. I am happy to change the option name, I copied the name that was displayed when outputting the mapping table.
Reviewers: khemant, jhenderson, grimar, rupprecht
Reviewed By: jhenderson, grimar, rupprecht
Subscribers: rupprecht, jhenderson, llvm-commits
Differential Revision: https://reviews.llvm.org/D57365
llvm-svn: 352896
Diffstat (limited to 'llvm/tools/llvm-readobj/ObjDumper.h')
-rw-r--r-- | llvm/tools/llvm-readobj/ObjDumper.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/llvm/tools/llvm-readobj/ObjDumper.h b/llvm/tools/llvm-readobj/ObjDumper.h index 17cc8bb552d..6d57f4c1cb3 100644 --- a/llvm/tools/llvm-readobj/ObjDumper.h +++ b/llvm/tools/llvm-readobj/ObjDumper.h @@ -14,6 +14,7 @@ #include "llvm/ADT/StringRef.h" #include "llvm/Object/ObjectFile.h" +#include "llvm/Support/CommandLine.h" namespace llvm { namespace object { @@ -40,13 +41,20 @@ public: if (PrintDynamicSymbols) printDynamicSymbols(); } + virtual void printProgramHeaders(bool PrintProgramHeaders, + cl::boolOrDefault PrintSectionMapping) { + if (PrintProgramHeaders) + printProgramHeaders(); + if (PrintSectionMapping == cl::BOU_TRUE) + printSectionMapping(); + } + virtual void printUnwindInfo() = 0; // Only implemented for ELF at this time. virtual void printDynamicRelocations() { } virtual void printDynamicTable() { } virtual void printNeededLibraries() { } - virtual void printProgramHeaders() { } virtual void printSectionAsHex(StringRef SectionName) {} virtual void printHashTable() { } virtual void printGnuHashTable() { } @@ -99,8 +107,10 @@ protected: ScopedPrinter &W; private: - virtual void printSymbols() {}; - virtual void printDynamicSymbols() {}; + virtual void printSymbols() {} + virtual void printDynamicSymbols() {} + virtual void printProgramHeaders() {} + virtual void printSectionMapping() {} }; std::error_code createCOFFDumper(const object::ObjectFile *Obj, |