Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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.


  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