Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: "Pierre Muller" <muller@ics.u-strasbg.fr>
To: "'Eli Zaretskii'" <eliz@gnu.org>
Cc: <gdb-patches@sourceware.org>
Subject: RE: [RFA] Fix troubles with watchpoints in DJGPP
Date: Wed, 27 May 2009 20:53:00 -0000	[thread overview]
Message-ID: <001b01c9df0d$32609890$9721c9b0$@u-strasbg.fr> (raw)
In-Reply-To: <83ab4ys5zy.fsf@gnu.org>



> -----Message d'origine-----
> De : gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> owner@sourceware.org] De la part de Eli Zaretskii
> Envoyé : Wednesday, May 27, 2009 9:25 PM
> À : Pierre Muller (IMAP)
> Cc : gdb-patches@sourceware.org
> Objet : Re: [RFA] Fix troubles with watchpoints in DJGPP
> 
> > From: "Pierre Muller \(IMAP\)" <muller@ics.u-strasbg.fr>
> > Date: Wed, 27 May 2009 09:48:49 +0200
> >
> >
> >   I also tried to use it but I have several problems,
> > some are probably DJGPP specific
> > (bad file descriptor errors when trying to restart
> > a ./gdb executable at level 2, meaning inside another gdb
> > itself being debugged by gdb).
> 
> Please give me some simple test program and a transcript of a GDB
> session that reproduces this problem.  I debug GDB with itself a lot,
> and I never saw this.

  Compile gdb on current CVS head.

in build/gdb

bash-2.05b$ ./gdb ./gdb
GNU gdb (GDB) 6.8.50.20090524-cvs
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=i586-pc-msdosdjgpp --target=djgpp".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
(gdb) watch gdb_tderr
No symbol "gdb_tderr" in current context.
(gdb) watch gdb_stderr
Watchpoint 1: gdb_stderr
(gdb) r
Starting program: e:/cygwin/usr/local/src/gdbcvs/djbuild/gdb/./gdb.exe
Watchpoint 1: gdb_stderr

Old value = <unreadable>
New value = (struct ui_file *) 0x0
0x00001a91 in start ()
(gdb) inf watch
Num     Type           Disp Enb Address    What
1       watchpoint     keep y              gdb_stderr
        breakpoint already hit 1 time
(gdb) q

With patch go32-nat.c file:

bash-2.05b$ ./gdb ./gdb
GNU gdb (GDB) 6.8.50.20090524-cvs
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=i586-pc-msdosdjgpp --target=djgpp".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
(gdb) watch gdb_stderr
Watchpoint 1: gdb_stderr
(gdb) r
Starting program: e:/cygwin/usr/local/src/gdbcvs/djbuild/gdb/./gdb.exe
Hardware watchpoint 1: gdb_stderr

Old value = (struct ui_file *) 0x0
New value = (struct ui_file *) 0x3aa7dc
captured_main (data=0x3a92d0) at ../../purecvs/gdb/main.c:322
322       gdb_stdlog = gdb_stderr;      /* for moment */
(gdb) inf watch
Num     Type           Disp Enb Address    What
1       hw watchpoint  keep y              gdb_stderr
        breakpoint already hit 1 time
(gdb)q

With the patch, the 'watchpoint' 
is successfully promoted into a 'hardware watchpoint'
thanks to this 
breakpoint_re_set call.

> Also, on what platform (OS and version) is that?
> 
> >   After some debugging, I realized that
> > DJGPP only calls insert_breakpoints ()
> > that does call update_watchpoint with reparse set to one,
> > after pushing go32 target,
> > while with cygwin, the DLL loaded caused a
> > reloading of all breakpoints and triggered a
> > call to update_watchpoint with reparse = 1.
> >
> >
> > This one line patch fixes the problem.
> >
> > Is this patch OK?
> 
> Thanks, but here, too, I would like a simple test program and a
> transcript of a GDB session before and after the patch.

I hope the above is enough for you.
 
> > PS-2) Eli,
> > do you have anything that could help me debug the
> > Bad file descriptor problems, like a library recording
> > file opening/closing using the DJGPP file system extensions?
> 
> No, but you can put a breakpoint on the respective library functions,
> couldn't you?

  I discovered that there is already something in
dbgcom.c, but I wanted to have dup and dup2 calls 
be monitored also, as the problem seems related to
handles of that type... But dup and dup2
never generate a call to the FSEXT function,
which make it not useful for that :(

Pierre


  reply	other threads:[~2009-05-27 20:53 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-27  7:49 Pierre Muller (IMAP)
2009-05-27 19:25 ` Eli Zaretskii
2009-05-27 20:53   ` Pierre Muller [this message]
2009-05-28  8:21     ` Eli Zaretskii
2009-05-28  9:31       ` Pierre Muller
2009-05-28 13:27         ` Eli Zaretskii
2009-05-27 23:30 ` Pedro Alves
2009-05-28  8:08   ` Eli Zaretskii
2009-06-08 16:16   ` [RFA-v2] " Pierre Muller
2009-06-16 22:38     ` [PING][RFA-v2] " Pierre Muller
2009-06-16 22:59       ` Pedro Alves
2009-06-16 23:20         ` Pierre Muller
2009-06-16 23:46           ` Pedro Alves
2009-06-16 23:54             ` Pierre Muller
2009-06-17  0:05               ` Pedro Alves
2009-06-17  6:19                 ` Pierre Muller
2009-06-17 12:32             ` Joel Brobecker
2009-06-17 22:44               ` DJ Delorie

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='001b01c9df0d$32609890$9721c9b0$@u-strasbg.fr' \
    --to=muller@ics.u-strasbg.fr \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@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