2007-10-09 Pedro Alves * symfile.c (syms_from_objfile): Don't warn if loadable sections are not found. --- gdb/symfile.c | 29 +++++++++-------------- gdb/win32-nat.c | 70 -------------------------------------------------------- 2 files changed, 13 insertions(+), 86 deletions(-) Index: src/gdb/symfile.c =================================================================== --- src.orig/gdb/symfile.c 2007-10-08 23:45:50.000000000 +0100 +++ src/gdb/symfile.c 2007-10-13 01:51:40.000000000 +0100 @@ -822,18 +822,18 @@ syms_from_objfile (struct objfile *objfi bfd_map_over_sections (objfile->obfd, find_lowest_section, &lower_sect); if (lower_sect == NULL) - warning (_("no loadable sections found in added symbol-file %s"), - objfile->name); - else - if ((bfd_get_section_flags (objfile->obfd, lower_sect) & SEC_CODE) == 0) - warning (_("Lowest section in %s is %s at %s"), - objfile->name, - bfd_section_name (objfile->obfd, lower_sect), - paddr (bfd_section_vma (objfile->obfd, lower_sect))); - if (lower_sect != NULL) - lower_offset = bfd_section_vma (objfile->obfd, lower_sect); - else lower_offset = 0; + else + { + int flags = bfd_get_section_flags (objfile->obfd, lower_sect); + if (flags == 0) + warning (_("Lowest section in %s is %s at %s"), + objfile->name, + bfd_section_name (objfile->obfd, lower_sect), + paddr (bfd_section_vma (objfile->obfd, lower_sect))); + + lower_offset = bfd_section_vma (objfile->obfd, lower_sect); + } /* Calculate offsets for the loadable sections. FIXME! Sections must be in order of increasing loadable section @@ -860,12 +860,7 @@ syms_from_objfile (struct objfile *objfi addrs->other[i].sectindex = sect->index ; } else - { - warning (_("section %s not found in %s"), - addrs->other[i].name, - objfile->name); - addrs->other[i].addr = 0; - } + addrs->other[i].addr = 0; } else addrs->other[i].addr = lower_offset; Index: src/gdb/win32-nat.c =================================================================== --- src.orig/gdb/win32-nat.c 2007-10-13 01:51:10.000000000 +0100 +++ src/gdb/win32-nat.c 2007-10-13 01:51:40.000000000 +0100 @@ -525,19 +525,6 @@ failed: return 0; } -/* Encapsulate the information required in a call to - symbol_file_add_args */ -struct safe_symbol_file_add_args -{ - char *name; - int from_tty; - struct section_addr_info *addrs; - int mainline; - int flags; - struct ui_file *err, *out; - struct objfile *ret; -}; - /* Maintain a linked list of "so" information. */ struct lm_info { @@ -546,61 +533,6 @@ struct lm_info static struct so_list solib_start, *solib_end; -/* Call symbol_file_add with stderr redirected. We don't care if there - are errors. */ -static int -safe_symbol_file_add_stub (void *argv) -{ -#define p ((struct safe_symbol_file_add_args *) argv) - struct so_list *so = &solib_start; - - p->ret = symbol_file_add (p->name, p->from_tty, p->addrs, p->mainline, p->flags); - return !!p->ret; -#undef p -} - -/* Restore gdb's stderr after calling symbol_file_add */ -static void -safe_symbol_file_add_cleanup (void *p) -{ -#define sp ((struct safe_symbol_file_add_args *)p) - gdb_flush (gdb_stderr); - gdb_flush (gdb_stdout); - ui_file_delete (gdb_stderr); - ui_file_delete (gdb_stdout); - gdb_stderr = sp->err; - gdb_stdout = sp->out; -#undef sp -} - -/* symbol_file_add wrapper that prevents errors from being displayed. */ -static struct objfile * -safe_symbol_file_add (char *name, int from_tty, - struct section_addr_info *addrs, - int mainline, int flags) -{ - struct safe_symbol_file_add_args p; - struct cleanup *cleanup; - - cleanup = make_cleanup (safe_symbol_file_add_cleanup, &p); - - p.err = gdb_stderr; - p.out = gdb_stdout; - gdb_flush (gdb_stderr); - gdb_flush (gdb_stdout); - gdb_stderr = ui_file_new (); - gdb_stdout = ui_file_new (); - p.name = name; - p.from_tty = from_tty; - p.addrs = addrs; - p.mainline = mainline; - p.flags = flags; - catch_errors (safe_symbol_file_add_stub, &p, "", RETURN_MASK_ERROR); - - do_cleanups (cleanup); - return p.ret; -} - static struct so_list * win32_make_so (const char *name, DWORD load_addr) { @@ -801,7 +733,7 @@ dll_symbol_command (char *args, int from args = newargs; } - safe_symbol_file_add (args, from_tty, NULL, 0, OBJF_SHARED | OBJF_USERLOADED); + symbol_file_add (args, from_tty, NULL, 0, OBJF_SHARED | OBJF_USERLOADED); } /* Handle DEBUG_STRING output from child process.