mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-01 15:21:00 +00:00
Print a header above the symbols. Extracted from a patch by Sami Liedes.
llvm-svn: 171302
This commit is contained in:
parent
53162bceaa
commit
812bc66ae6
@ -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
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user