Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Jeff Johnston <jjohnstn@redhat.com>
To: Daniel Jacobowitz <drow@false.org>
Cc: gdb-patches@sources.redhat.com
Subject: Re: [RFA]: Modified Watchthreads Patch
Date: Fri, 10 Dec 2004 22:18:00 -0000	[thread overview]
Message-ID: <41BA168E.7030507@redhat.com> (raw)
In-Reply-To: <20041210203729.GA7830@nevyn.them.org>

Daniel Jacobowitz wrote:
> On Fri, Dec 10, 2004 at 03:02:41PM -0500, Jeff Johnston wrote:
> 
>>>On the technical side, two questions:
>>>
>>>1) I can see that it will be a bit of work to rearrange i386-linux to
>>>use this, but it should be doable.  Do you know offhand of any
>>>i386-specific problems other than inserting watchpoints for all
>>>threads?
>>>
>>
>>Actually, with i386/x86-64 I discovered that the debug registers are global 
>>in scope for the setting of watchpoints (i.e. I didn't have to use the 
>>observer). The status register, however, is thread-specific for reporting 
>>them.  I have gotten the watchthreads.exp testcase working for both 
>>platforms.  Your lwp fix helps a lot with this.  We call TIDGET()/PIDGET() 
>>in the low-level code which used to get called in the wrong ptid mode so we 
>>kept checking the main-thread for the watchpoint.
> 
> 
> Er... do you know why the debug registers are global, and what kernel
> is this with?  They look thread-specific to me (kernel 2.6.10-rc1). 
> They are accessible using PEEKUSR/POKEUSR for each thread, and
> __switch_to updates them at context switches.
>

I am simply speaking from experience with the RHEL3 kernel.  I got it working 
without touching the insert/remove logic.  I am currently retrofitting new 
changes into the mainline gdb that are much "cleaner" than my previous fixes.  I 
haven't tried x86 on the latest kernel, but I am in the midst of putting 
together an uber-patch with the stuff here plus some other things needed for 
each platform.  IA64 is already finished and running watchthreads.exp on a 
next-release kernel.  I am about to start x86 so I will keep in mind your 
comment.  I'll let you know either way what I had to do to get it working.

> 
>>>2) What should to_stopped_by_watchpoint do in the presence of multiple
>>>threads?  It looks like it relies on inferior_ptid being the thread
>>>which stopped at a watchpoint; I'm worried that that may not be
>>>consistently true in a heavily threaded application.  Maybe it should
>>>iterate over all threads.
>>>
>>
>>It works fine for the watchthreads.exp test once all the mechanisms are in 
>>place (I have a few more patches to go).  We don't want to iterate over all 
>>threads unless we know the platform has a problem.  Otherwise, we won't be 
>>able to pin down a specific watchpoint triggered with the thread/source 
>>line that triggered it.  Is there a valid scenario where inferior_ptid 
>>should not be the thread for the signal chosen by the low-level linux-nat 
>>code?  If not, I would prefer to treat that as a bug that requires pinning 
>>down.
> 
> 
> We can delay this issue, then.  I am concerned about losing watchpoints
> when other events are active, e.g. a thread event breakpoint or dlopen
> breakpoint and a read watchpoint.  I'm sure GDB gets this wrong
> already.
> 
> Please fix the whitespace at the end of s390-nat.c.  Otherwise, this is
> approved if Ulrich is OK with the S390 bits; let's give him a chance to
> comment.
> 

Great.  Will make the white-space change and wait for Ulrich.

-- Jeff J.


  reply	other threads:[~2004-12-10 21:35 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-10  4:24 Jeff Johnston
2004-12-10 13:31 ` Eli Zaretskii
2004-12-10 14:21   ` Daniel Jacobowitz
2004-12-10 18:01     ` Jeff Johnston
2004-12-24 11:05       ` Michael Snyder
2005-01-07  0:23         ` jjohnstn
2004-12-10 23:01     ` Eli Zaretskii
2004-12-10 23:31       ` Daniel Jacobowitz
2004-12-10 19:10   ` Jeff Johnston
2004-12-10 22:51     ` Eli Zaretskii
2004-12-23 22:32   ` Michael Snyder
2004-12-24 14:46     ` Eli Zaretskii
2004-12-10 20:03 ` Daniel Jacobowitz
2004-12-10 20:30   ` Jeff Johnston
2004-12-10 20:47     ` Daniel Jacobowitz
2004-12-10 22:18       ` Jeff Johnston [this message]
2004-12-10 23:57         ` Jeff Johnston
2004-12-11  0:31           ` Daniel Jacobowitz
2004-12-11  1:28             ` Jeff Johnston
2004-12-11 14:34           ` Eli Zaretskii
2004-12-11 16:56             ` Daniel Jacobowitz
2004-12-11 18:01               ` Eli Zaretskii
2004-12-11 18:06                 ` Daniel Jacobowitz
2004-12-11 19:08                   ` Eli Zaretskii
2004-12-11 19:30                     ` Daniel Jacobowitz
2004-12-12  5:22                       ` Eli Zaretskii
2004-12-11 21:54                   ` Mark Kettenis
2004-12-11 14:53           ` Mark Kettenis
2004-12-11 16:52             ` Eli Zaretskii
2004-12-11  2:04       ` Daniel Jacobowitz
2004-12-11 16:11         ` Mark Kettenis
2004-12-10 23:06   ` Eli Zaretskii
2004-12-10 23:10     ` Daniel Jacobowitz
2004-12-10 23:37       ` Eli Zaretskii
2004-12-10 23:52         ` Daniel Jacobowitz
2004-12-11 11:32           ` Eli Zaretskii
2004-12-11 14:49             ` Mark Kettenis
2004-12-11 16:48               ` Daniel Jacobowitz
2004-12-11 17:33                 ` Eli Zaretskii
2004-12-11 17:53                   ` Daniel Jacobowitz
2004-12-11 18:07                     ` Eli Zaretskii
2004-12-11 18:50                       ` Daniel Jacobowitz
2004-12-11 19:06                 ` Mark Kettenis
2004-12-11 19:07                   ` Daniel Jacobowitz
2004-12-11 16:49               ` Eli Zaretskii
2004-12-11 16:37             ` Daniel Jacobowitz
2004-12-11 17:30               ` Eli Zaretskii
2004-12-11 17:38                 ` Daniel Jacobowitz
2004-12-11 18:02                   ` Eli Zaretskii
2004-12-11 18:10                     ` Daniel Jacobowitz
2005-01-13 19:22                   ` Jeff Johnston
2005-02-11  1:57                     ` Daniel Jacobowitz
2005-02-11 18:18                       ` Eli Zaretskii
2005-02-11 18:31                         ` Daniel Jacobowitz
2005-02-12 21:50                           ` Eli Zaretskii
2004-12-11 19:35 Ulrich Weigand

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=41BA168E.7030507@redhat.com \
    --to=jjohnstn@redhat.com \
    --cc=drow@false.org \
    --cc=gdb-patches@sources.redhat.com \
    /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