* objdump.c (load_specific_debug_section): New function, from

load_debug_section.
	(load_debug_section): Use load_specific_debug_section.
	(dump_dwarf_section): Likewise.
This commit is contained in:
Cary Coutant 2009-02-23 19:44:58 +00:00
parent 613ff48bcb
commit 7bcbeb0f1c
2 changed files with 43 additions and 17 deletions

View File

@ -1,3 +1,10 @@
2009-02-23 Cary Coutant <ccoutant@google.com>
* objdump.c (load_specific_debug_section): New function, from
load_debug_section.
(load_debug_section): Use load_specific_debug_section.
(dump_dwarf_section): Likewise.
2009-02-23 Cary Coutant <ccoutant@google.com>
* readelf.c (parse_args): Select all sections explicitly for -w.

View File

@ -2122,12 +2122,12 @@ disassemble_data (bfd *abfd)
free (sorted_syms);
}
int
load_debug_section (enum dwarf_section_display_enum debug, void *file)
static int
load_specific_debug_section (enum dwarf_section_display_enum debug,
asection *sec, void *file)
{
struct dwarf_section *section = &debug_displays [debug].section;
bfd *abfd = file;
asection *sec;
bfd_boolean ret;
int section_is_compressed;
@ -2135,18 +2135,6 @@ load_debug_section (enum dwarf_section_display_enum debug, void *file)
if (section->start != NULL)
return 1;
/* Locate the debug section. */
sec = bfd_get_section_by_name (abfd, section->uncompressed_name);
if (sec != NULL)
section->name = section->uncompressed_name;
else
{
sec = bfd_get_section_by_name (abfd, section->compressed_name);
if (sec != NULL)
section->name = section->compressed_name;
}
if (sec == NULL)
return 0;
section_is_compressed = section->name == section->compressed_name;
section->address = 0;
@ -2182,7 +2170,34 @@ load_debug_section (enum dwarf_section_display_enum debug, void *file)
section->size = size;
}
return ret;
return 1;
}
int
load_debug_section (enum dwarf_section_display_enum debug, void *file)
{
struct dwarf_section *section = &debug_displays [debug].section;
bfd *abfd = file;
asection *sec;
/* If it is already loaded, do nothing. */
if (section->start != NULL)
return 1;
/* Locate the debug section. */
sec = bfd_get_section_by_name (abfd, section->uncompressed_name);
if (sec != NULL)
section->name = section->uncompressed_name;
else
{
sec = bfd_get_section_by_name (abfd, section->compressed_name);
if (sec != NULL)
section->name = section->compressed_name;
}
if (sec == NULL)
return 0;
return load_specific_debug_section (debug, sec, file);
}
void
@ -2222,7 +2237,11 @@ dump_dwarf_section (bfd *abfd, asection *section,
{
struct dwarf_section *sec = &debug_displays [i].section;
if (load_debug_section (i, abfd))
if (strcmp (sec->uncompressed_name, match) == 0)
sec->name = sec->uncompressed_name;
else
sec->name = sec->compressed_name;
if (load_specific_debug_section (i, section, abfd))
{
debug_displays [i].display (sec, abfd);