diff options
| author | Roland McGrath <[email protected]> | 2009-06-28 14:48:02 -0700 |
|---|---|---|
| committer | Roland McGrath <[email protected]> | 2009-06-28 14:48:02 -0700 |
| commit | 5dbccdbeba148960ff97a96088894ec46add70c6 (patch) | |
| tree | f7084fb85404c414d2d897b7ae8c24d6b2f5c33a | |
| parent | 8d7432288a321d00cc12dbbfa302285f03c68621 (diff) | |
readelf: Add -N option, speeds up DWARF printing without address->name lookups.
| -rw-r--r-- | NEWS | 2 | ||||
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | src/readelf.c | 11 |
3 files changed, 18 insertions, 1 deletions
@@ -4,6 +4,8 @@ libelf: Add elf_getshdrnum alias for elf_getshnum and elf_getshdrstrndx alias for elf_getshstrndx and deprecate original names. Sun screwed up their implementation and asked for a solution. +readelf: Add -N option, speeds up DWARF printing without address->name lookups. + Version 0.141: libebl: sparc backend fixes; diff --git a/src/ChangeLog b/src/ChangeLog index f74b31d5..a1078ab6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2009-06-28 Roland McGrath <[email protected]> + + * readelf.c (print_address_names): New static variable. + (options, parse_opt): Grok -N/--numeric-addresses to clear it. + (format_dwarf_addr): Don't look up name if !print_address_names. + 2009-06-13 Ulrich Drepper <[email protected]> * ldgeneric.c: Don't use deprecated libelf functions. diff --git a/src/readelf.c b/src/readelf.c index ca9772e4..2ab2ab58 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -100,6 +100,8 @@ static const struct argp_option options[] = 0 }, { NULL, 0, NULL, 0, N_("Output control:"), 0 }, + { "numeric-addresses", 'N', NULL, 0, + N_("Do not find symbol names for addresses in DWARF data"), 0 }, { NULL, 0, NULL, 0, NULL, 0 } }; @@ -165,6 +167,9 @@ static bool print_archive_index; /* True if any of the control options except print_archive_index is set. */ static bool any_control_option; +/* True if we should print addresses from DWARF in symbolic form. */ +static bool print_address_names = true; + /* Select printing of debugging sections. */ static enum section_e { @@ -406,6 +411,9 @@ parse_opt (int key, char *arg, add_dump_section (arg); any_control_option = true; break; + case 'N': + print_address_names = false; + break; case ARGP_KEY_NO_ARGS: fputs (gettext ("Missing file name.\n"), stderr); goto do_argp_help; @@ -3061,7 +3069,8 @@ format_dwarf_addr (Dwfl_Module *dwflmod, { /* See if there is a name we can give for this address. */ GElf_Sym sym; - const char *name = dwfl_module_addrsym (dwflmod, address, &sym, NULL); + const char *name = print_address_names + ? dwfl_module_addrsym (dwflmod, address, &sym, NULL) : NULL; if (name != NULL) sym.st_value = address - sym.st_value; |
