summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/llvm-readobj.cpp
diff options
context:
space:
mode:
authorHemant Kulkarni <khemant@codeaurora.org>2016-01-26 19:46:39 +0000
committerHemant Kulkarni <khemant@codeaurora.org>2016-01-26 19:46:39 +0000
commitab4a46fa1cb248097e23e828f7f0204e38359e57 (patch)
treeaae68a77a1c106dac691fa6be6003bbcb582fcdd /llvm/tools/llvm-readobj/llvm-readobj.cpp
parent4c91ad1be7cd8ef796660fe1a545c2659bb61949 (diff)
downloadbcm5719-llvm-ab4a46fa1cb248097e23e828f7f0204e38359e57.tar.gz
bcm5719-llvm-ab4a46fa1cb248097e23e828f7f0204e38359e57.zip
[llvm-readobj] Add -elf-section-groups option
Adds a way to inspect SHT_GROUP sections in ELF objects. Displays signature, member sections of these sections. Differential revision: http://reviews.llvm.org/D16555 llvm-svn: 258845
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
-rw-r--r--llvm/tools/llvm-readobj/llvm-readobj.cpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp
index fa8fee2b03a..790b1d59550 100644
--- a/llvm/tools/llvm-readobj/llvm-readobj.cpp
+++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp
@@ -227,6 +227,12 @@ namespace opts {
cl::desc("Display ELF version sections (if present)"));
cl::alias VersionInfoShort("V", cl::desc("Alias for -version-info"),
cl::aliasopt(VersionInfo));
+
+ cl::opt<bool> SectionGroups("elf-section-groups",
+ cl::desc("Display ELF section group contents"));
+ cl::alias SectionGroupsShort("g", cl::desc("Alias for -elf-sections-groups"),
+ cl::aliasopt(SectionGroups));
+
} // namespace opts
namespace llvm {
@@ -334,16 +340,20 @@ static void dumpObject(const ObjectFile *Obj) {
Dumper->printGnuHashTable();
if (opts::VersionInfo)
Dumper->printVersionInfo();
- if (Obj->getArch() == llvm::Triple::arm && Obj->isELF())
- if (opts::ARMAttributes)
- Dumper->printAttributes();
- if (isMipsArch(Obj->getArch()) && Obj->isELF()) {
- if (opts::MipsPLTGOT)
- Dumper->printMipsPLTGOT();
- if (opts::MipsABIFlags)
- Dumper->printMipsABIFlags();
- if (opts::MipsReginfo)
- Dumper->printMipsReginfo();
+ if (Obj->isELF()) {
+ if (Obj->getArch() == llvm::Triple::arm)
+ if (opts::ARMAttributes)
+ Dumper->printAttributes();
+ if (isMipsArch(Obj->getArch())) {
+ if (opts::MipsPLTGOT)
+ Dumper->printMipsPLTGOT();
+ if (opts::MipsABIFlags)
+ Dumper->printMipsABIFlags();
+ if (opts::MipsReginfo)
+ Dumper->printMipsReginfo();
+ }
+ if (opts::SectionGroups)
+ Dumper->printGroupSections();
}
if (Obj->isCOFF()) {
if (opts::COFFImports)
OpenPOWER on IntegriCloud