summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/llvm-readobj.cpp
diff options
context:
space:
mode:
authorPaul Semel <semelpaul@gmail.com>2018-06-15 14:15:02 +0000
committerPaul Semel <semelpaul@gmail.com>2018-06-15 14:15:02 +0000
commitfa5597b24da47d5ecec4560f3f76f4bb08b405bc (patch)
treefeec39c6c27ceb1784d2542232db4669b6c7aab8 /llvm/tools/llvm-readobj/llvm-readobj.cpp
parent9ddf128f79b43d29d3c31e529087ac112a6a26be (diff)
downloadbcm5719-llvm-fa5597b24da47d5ecec4560f3f76f4bb08b405bc.tar.gz
bcm5719-llvm-fa5597b24da47d5ecec4560f3f76f4bb08b405bc.zip
[llvm-readobj] Add -string-dump (-p) option
This option prints the section content as a string. Differential Revision: https://reviews.llvm.org/D47989 llvm-svn: 334834
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
-rw-r--r--llvm/tools/llvm-readobj/llvm-readobj.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp
index f871dc90950..22a8fcde391 100644
--- a/llvm/tools/llvm-readobj/llvm-readobj.cpp
+++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp
@@ -146,6 +146,12 @@ namespace opts {
cl::alias ProgramHeadersShort("l", cl::desc("Alias for --program-headers"),
cl::aliasopt(ProgramHeaders));
+ // -string-dump
+ cl::list<std::string> StringDump("string-dump", cl::desc("<number|name>"),
+ cl::ZeroOrMore);
+ cl::alias StringDumpShort("p", cl::desc("Alias for --string-dump"),
+ cl::aliasopt(StringDump));
+
// -hash-table
cl::opt<bool> HashTable("hash-table",
cl::desc("Display ELF hash table"));
@@ -417,6 +423,10 @@ static void dumpObject(const ObjectFile *Obj, ScopedPrinter &Writer) {
Dumper->printNeededLibraries();
if (opts::ProgramHeaders)
Dumper->printProgramHeaders();
+ if (!opts::StringDump.empty())
+ llvm::for_each(opts::StringDump, [&Dumper](StringRef SectionName) {
+ Dumper->printSectionAsString(SectionName);
+ });
if (opts::HashTable)
Dumper->printHashTable();
if (opts::GnuHashTable)
OpenPOWER on IntegriCloud