From 677423997d6a31e9037e41dca990508d561ad42d Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Tue, 18 Jun 2019 14:01:03 +0000 Subject: [llvm-readobj] Allow --hex-dump/--string-dump to dump multiple sections 1) `-x foo` currently dumps one `foo`. This change makes it dump all `foo`. 2) `-x foo -x foo` currently dumps `foo` twice. This change makes it dump `foo` once. In addition, if foo has section index 9, `-x foo -x 9` dumps `foo` once. 3) Give a warning instead of an error if `foo` does not exist. The new behaviors match GNU readelf. Also, print a new line as a separator between two section dumps. GNU readelf uses two lines, but one seems good enough. Reviewed By: grimar, jhenderson Differential Revision: https://reviews.llvm.org/D63475 llvm-svn: 363683 --- llvm/tools/llvm-readobj/llvm-readobj.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp') diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp index e44cbae6f85..c040541f82a 100644 --- a/llvm/tools/llvm-readobj/llvm-readobj.cpp +++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp @@ -495,13 +495,9 @@ static void dumpObject(const ObjectFile *Obj, ScopedPrinter &Writer) { if (opts::ProgramHeaders || opts::SectionMapping == cl::BOU_TRUE) Dumper->printProgramHeaders(opts::ProgramHeaders, opts::SectionMapping); if (!opts::StringDump.empty()) - llvm::for_each(opts::StringDump, [&Dumper, Obj](StringRef SectionName) { - Dumper->printSectionAsString(Obj, SectionName); - }); + Dumper->printSectionsAsString(Obj, opts::StringDump); if (!opts::HexDump.empty()) - llvm::for_each(opts::HexDump, [&Dumper, Obj](StringRef SectionName) { - Dumper->printSectionAsHex(Obj, SectionName); - }); + Dumper->printSectionsAsHex(Obj, opts::HexDump); if (opts::HashTable) Dumper->printHashTable(); if (opts::GnuHashTable) -- cgit v1.2.3