summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/ObjDumper.h
diff options
context:
space:
mode:
authorMatt Davis <Matthew.Davis@sony.com>2019-02-01 18:51:10 +0000
committerMatt Davis <Matthew.Davis@sony.com>2019-02-01 18:51:10 +0000
commit50ca8edb1a0d94e057a28ae792e3b756bd08d809 (patch)
tree999b6b97b1b82efc130184b881f94f2b4689eb8b /llvm/tools/llvm-readobj/ObjDumper.h
parent25b4c4ceb6861c4564bcb5280fa81805cb9cca80 (diff)
downloadbcm5719-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.h16
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,
OpenPOWER on IntegriCloud