From: Pedro Alves <pedro_alves@portugalmail.pt>
To: gdb-patches@sourceware.org
Cc: Daniel Jacobowitz <drow@false.org>, insight@sourceware.org
Subject: Re: syms_from_objfile() warnings and win32-nat.c IO redirection (Was: suppress annoying warnings about cygwin1.dbg)
Date: Sat, 13 Oct 2007 01:44:00 -0000 [thread overview]
Message-ID: <47101DB4.6010204@portugalmail.pt> (raw)
In-Reply-To: <470FFB00.9909C731@dessent.net>
[-- Attachment #1: Type: text/plain, Size: 900 bytes --]
Brian Dessent wrote:
> Daniel Jacobowitz wrote:
>
> Unfortunately, current HEAD is nearly unusable right now on Cygwin.
I shook a bit when I read "unusable" :) That's a pretty strong word.
> If you do this in insight it's much worse as every one of those warnings
> gets its own popup message box, which means twelve annoying things to
> dismiss before you can even start to debug. And on top of that, some of
> these messages somehow end up spuriously appearing in with the program
> display pane in insight (see attached PNG). I guess there's some kind
> of filter in the insight code that needs updating, but preferrably these
> warnings shouldn't even be generated.
>
I've had this fixed here for a while. It goes on the direction of removing
the warnings, and removing the warning suppressing on win32-nat.c. Could
you test it with cygwin1.dbg and with insight?
Cheers,
Pedro Alves
[-- Attachment #2: remove_redirect_null.diff --]
[-- Type: text/x-diff, Size: 4792 bytes --]
2007-10-09 Pedro Alves <pedro_alves@portugalmail.pt>
* 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.
next prev parent reply other threads:[~2007-10-13 1:24 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <46262D3A.8B1A0D15@dessent.net>
[not found] ` <20070418150137.GA7338@trixie.casa.cgf.cx>
[not found] ` <46263710.D9755DAD@dessent.net>
[not found] ` <462639F3.FBCF4675@dessent.net>
[not found] ` <46264A56.BA86EED7@dessent.net>
2007-05-02 15:19 ` [patch ping] suppress annoying warnings about cygwin1.dbg Brian Dessent
2007-06-25 23:20 ` [patch ping^2] " Brian Dessent
2007-06-25 23:40 ` Pedro Alves
2007-06-25 23:52 ` Daniel Jacobowitz
2007-06-26 0:59 ` Brian Dessent
2007-06-26 7:37 ` Daniel Jacobowitz
2007-06-28 6:11 ` syms_from_objfile() warnings and win32-nat.c IO redirection (Was: suppress annoying warnings about cygwin1.dbg) Brian Dessent
2007-06-28 12:44 ` Daniel Jacobowitz
2007-10-11 20:26 ` Daniel Jacobowitz
2007-10-13 0:09 ` Brian Dessent
2007-10-13 1:44 ` Pedro Alves [this message]
2007-10-13 2:49 ` Brian Dessent
2007-10-13 3:33 ` Pedro Alves
2007-10-13 6:03 ` Brian Dessent
2007-10-24 19:06 ` Daniel Jacobowitz
2007-10-29 3:06 ` Pedro Alves
2007-10-29 12:33 ` Pedro Alves
2007-10-29 12:57 ` Daniel Jacobowitz
2007-10-29 22:54 ` Pedro Alves
2007-10-30 4:05 ` Christopher Faylor
2007-10-30 9:02 ` Pedro Alves
2007-10-30 1:27 ` Christopher Faylor
2007-11-08 23:56 ` Pedro Alves
2007-11-09 1:35 ` Pedro Alves
2007-11-09 13:34 ` Christopher Faylor
2007-11-09 13:59 ` Daniel Jacobowitz
2007-11-09 13:59 ` Pedro Alves
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47101DB4.6010204@portugalmail.pt \
--to=pedro_alves@portugalmail.pt \
--cc=drow@false.org \
--cc=gdb-patches@sourceware.org \
--cc=insight@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox