diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2012-12-31 16:05:21 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2012-12-31 16:05:21 +0000 |
commit | 148ee4f224be6448834bf039807c70bb1a7c78f5 (patch) | |
tree | c4c973421f1e8bcd41abb7bdc41ca169fbf92e63 | |
parent | ad784790ad28023ef5041beac6c23a8250778f3f (diff) | |
download | external_llvm-148ee4f224be6448834bf039807c70bb1a7c78f5.zip external_llvm-148ee4f224be6448834bf039807c70bb1a7c78f5.tar.gz external_llvm-148ee4f224be6448834bf039807c70bb1a7c78f5.tar.bz2 |
Print a header above the symbols. Extracted from a patch by Sami Liedes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171302 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | test/Object/readobj-shared-object.test | 2 | ||||
-rw-r--r-- | tools/llvm-readobj/llvm-readobj.cpp | 12 |
2 files changed, 14 insertions, 0 deletions
diff --git a/test/Object/readobj-shared-object.test b/test/Object/readobj-shared-object.test index 3b5457c..8d9b179 100644 --- a/test/Object/readobj-shared-object.test +++ b/test/Object/readobj-shared-object.test @@ -19,6 +19,7 @@ ELF32:Address Size: 32 bits ELF32:Load Name : libfoo.so ELF:Symbols: +ELF: Name Type Address Size FileOffset Flags ELF: .dynsym DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific ELF: .dynstr DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific ELF: .text DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific @@ -42,6 +43,7 @@ ELF: _edata ? {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0- ELF: Total: 21 ELF:Dynamic Symbols: +ELF: Name Type Address Size FileOffset Flags ELF: common_sym DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global ELF: tls_sym DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,threadlocal ELF: defined_sym DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global diff --git a/tools/llvm-readobj/llvm-readobj.cpp b/tools/llvm-readobj/llvm-readobj.cpp index 8f8804a..81d2bfb 100644 --- a/tools/llvm-readobj/llvm-readobj.cpp +++ b/tools/llvm-readobj/llvm-readobj.cpp @@ -33,6 +33,16 @@ using namespace llvm::object; static cl::opt<std::string> InputFilename(cl::Positional, cl::desc("<input object>"), cl::init("")); +static void dumpSymbolHeader() { + outs() << format(" %-32s", (const char*)"Name") + << format(" %-4s", (const char*)"Type") + << format(" %-16s", (const char*)"Address") + << format(" %-16s", (const char*)"Size") + << format(" %-16s", (const char*)"FileOffset") + << format(" %-26s", (const char*)"Flags") + << "\n"; +} + static const char *getTypeStr(SymbolRef::Type Type) { switch (Type) { case SymbolRef::ST_Unknown: return "?"; @@ -118,6 +128,7 @@ static void dumpSymbols(const ObjectFile *obj) { error_code ec; uint32_t count = 0; outs() << "Symbols:\n"; + dumpSymbolHeader(); symbol_iterator it = obj->begin_symbols(); symbol_iterator ie = obj->end_symbols(); while (it != ie) { @@ -135,6 +146,7 @@ static void dumpDynamicSymbols(const ObjectFile *obj) { error_code ec; uint32_t count = 0; outs() << "Dynamic Symbols:\n"; + dumpSymbolHeader(); symbol_iterator it = obj->begin_dynamic_symbols(); symbol_iterator ie = obj->end_dynamic_symbols(); while (it != ie) { |