Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Brian Dessent <brian@dessent.net>
To: Daniel Jacobowitz <drow@false.org>
Cc: Pedro Alves <pedro_alves@portugalmail.pt>,
	 	insight@sourceware.org, gdb-patches@sourceware.org
Subject: syms_from_objfile() warnings and win32-nat.c IO redirection (Was:   suppress annoying warnings about cygwin1.dbg)
Date: Thu, 28 Jun 2007 06:11:00 -0000	[thread overview]
Message-ID: <46833EB0.E8ABC8CB@dessent.net> (raw)
In-Reply-To: <20070625234015.GA17640@caradoc.them.org>

Daniel Jacobowitz wrote:

> The redirection to /dev/null is silly and should go away, by the way,
> so relying on it isn't the right fix.  I don't remember if my recently
> posted WIP patch removed it.  I think it did for most but not all
> cases.

So I tried simply removing the two problematic warnings in
syms_from_objfile(), and then getting rid of the hacky
safe_symbol_file_add() wrapper in win32-nat.c.  This obviously has the
desired effect of not seeing the popups in insight, but now gdb has
become much more chatty.  This is what happens when you run a Hello
World program:

$ /build/combined/gdb/gdb --quiet hello
Reading symbols from /tmp/hello.exe...done.
(gdb) start
Reading in symbols for /home/brian/hello.c...done.
Breakpoint 1 at 0x401065: file /home/brian/hello.c, line 4.
Reading symbols from /winxp/system32/ntdll.dll...Minimal symbols from
ntdll.dll...done.
Reading symbols from /winxp/system32/kernel32.dll...Minimal symbols from
KERNEL32.dll...done.
Reading symbols from /usr/bin/cygwin1.dll...Reading symbols from
/usr/bin/cygwin1.dbg...done.
done.
Reading symbols from /winxp/system32/advapi32.dll...Minimal symbols from
ADVAPI32.dll...done.
Reading symbols from /winxp/system32/rpcrt4.dll...Minimal symbols from
RPCRT4.dll...done.
Reading symbols from /winxp/system32/shimeng.dll...
Minimal symbols from ShimEng.dll...done.
Reading symbols from /winxp/system32/secur32.dll...Minimal symbols from
Secur32.dll...done.
[New thread 1988.0xa1c]
Reading symbols from /winxp/system32/user32.dll...Minimal symbols from
USER32.dll...done.
Reading symbols from /winxp/system32/gdi32.dll...Minimal symbols from
GDI32.dll...done.
main (argc=1, 
    argv=0x662740) at /home/brian/hello.c:4
4       {
(gdb) c
Hello world!
Reading symbols from /winxp/system32/psapi.dll...Minimal symbols from
PSAPI.DLL...done.

Program exited normally.
(gdb) 

In insight, it's somewhat better because the "Reading symbols from %s"
messages are suppressed due to the hooks, but not the "Minimal symbols
from %s", with the result in the console of:

(gdb) start
Reading in symbols for /home/brian/hello.c...done.
Breakpoint 1 at 0x401065: file /home/brian/hello.c, line 4.
Minimal symbols from ntdll.dll...Minimal symbols from
KERNEL32.dll...Minimal symbols from ADVAPI32.dll...Minimal symbols from
RPCRT4.dll...Minimal symbols from ShimEng.dll...Minimal symbols from
Secur32.dll...[New thread 3520.0xa5c]
Minimal symbols from USER32.dll...Minimal symbols from GDI32.dll...main
(argc=2, argv=0x662980) at /home/brian/hello.c:4

(gdb) c
[Deleting thread 3520.0xa5c]
Minimal symbols from PSAPI.DLL...
Program exited normally.

(gdb)

For comparison, the output of current unmodified stock CVS gdb is:

$ /build/combined/gdb/gdb --quiet hello
Reading symbols from /tmp/hello.exe...done.
(gdb) start
Reading in symbols for /home/brian/hello.c...done.
Breakpoint 1 at 0x401065: file /home/brian/hello.c, line 4.
[New thread 3256.0xdc]
main (argc=1, 
    argv=0x662740) at /home/brian/hello.c:4
4       {
(gdb) c
Hello world!

Program exited normally.
(gdb)

Obviously (?) this is way too much spew, so if we want to eliminate the
hacky IO redirection, what's the way forward?  It seems to me that the
"Minimal symbols from %s.." (coff-pe-read.c:read_pe_exported_syms()) is
pure noise, so it could just be eliminated.  However, how do we gate the
output of "Reading in symbols for %s" so that it shows for the user's
objects but not for the dozens of system DLLs?  Is there an existing API
for this?  I gather the answer is no, otherwise the hacky IO redirection
stuff would have never been done.  Or do we just say that we shouldn't
try to filter these messages and let the user see them all?  The result
of *that* looks like this:

$ /build/combined/gdb/gdb --quiet hello
Reading symbols from /tmp/hello.exe...done.
(gdb) start
Reading in symbols for /home/brian/hello.c...done.
Breakpoint 1 at 0x401065: file /home/brian/hello.c, line 4.
Reading symbols from /winxp/system32/ntdll.dll...done.
Reading symbols from /winxp/system32/kernel32.dll...done.
Reading symbols from /usr/bin/cygwin1.dll...Reading symbols from
/usr/bin/cygwin1.dbg...done.
done.
Reading symbols from /winxp/system32/advapi32.dll...done.
Reading symbols from /winxp/system32/rpcrt4.dll...done.
Reading symbols from /winxp/system32/shimeng.dll...done.
Reading symbols from /winxp/system32/secur32.dll...done.
[New thread 3084.0x968]
Reading symbols from /winxp/system32/user32.dll...done.
Reading symbols from /winxp/system32/gdi32.dll...done.
main (argc=1, argv=0x662740) at /home/brian/hello.c:4
4       {
(gdb) c
Hello world!
Reading symbols from /winxp/system32/psapi.dll...done.
[Deleting thread 3084.0x968]

Program exited normally.
(gdb) quit

Again, this is for a trivial program that contains one call to puts()
and nothing else.  For a less trivial example, you can get dozens of
these as there are potentially many DLLs get loaded during the lifetime
of the app, and so it can be somewhat spammy.

Ideas?

Brian


  parent reply	other threads:[~2007-06-28  4:53 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                 ` Brian Dessent [this message]
2007-06-28 12:44                   ` syms_from_objfile() warnings and win32-nat.c IO redirection (Was: suppress annoying warnings about cygwin1.dbg) Daniel Jacobowitz
2007-10-11 20:26                     ` Daniel Jacobowitz
2007-10-13  0:09                       ` Brian Dessent
2007-10-13  1:44                         ` Pedro Alves
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                                           ` Pedro Alves
2007-11-09 13:59                                           ` Daniel Jacobowitz

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=46833EB0.E8ABC8CB@dessent.net \
    --to=brian@dessent.net \
    --cc=drow@false.org \
    --cc=gdb-patches@sourceware.org \
    --cc=insight@sourceware.org \
    --cc=pedro_alves@portugalmail.pt \
    /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