From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3476 invoked by alias); 10 Dec 2004 23:57:07 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 3446 invoked from network); 10 Dec 2004 23:57:03 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sourceware.org with SMTP; 10 Dec 2004 23:57:03 -0000 Received: from drow by nevyn.them.org with local (Exim 4.34 #1 (Debian)) id 1CcudD-0006bY-6f; Fri, 10 Dec 2004 18:57:03 -0500 Date: Sat, 11 Dec 2004 00:31:00 -0000 From: Daniel Jacobowitz To: Jeff Johnston Cc: gdb-patches@sources.redhat.com Subject: Re: [RFA]: Modified Watchthreads Patch Message-ID: <20041210235703.GA25332@nevyn.them.org> Mail-Followup-To: Jeff Johnston , gdb-patches@sources.redhat.com References: <41B8E16D.6070505@redhat.com> <20041210191015.GA18430@nevyn.them.org> <41BA00E1.20900@redhat.com> <20041210203729.GA7830@nevyn.them.org> <41BA168E.7030507@redhat.com> <41BA36C5.2030304@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <41BA36C5.2030304@redhat.com> User-Agent: Mutt/1.5.5.1+cvs20040105i X-SW-Source: 2004-12/txt/msg00287.txt.bz2 On Fri, Dec 10, 2004 at 06:52:37PM -0500, Jeff Johnston wrote: > Interesting results. Applying my previous patch and just changing the > FIXME code in dr_get_register and dr_set_register to use the standard: > > tid = TIDGET (inferior_ptid); > if (tid == 0) > tid = PIDGET (inferior_ptid); > > allows watchthreads.exp to work for both x86 and x86_64. For x86, I used > an fc3 system with a 2.6.9-1.667smp kernel. I had to use an RHEL3 2.4 > kernel for x86-64. As Eli says, there are some design issues with the rest of the x86 watchpoint code that make me nervous about doing this. > The test sets two watchpoints that will be triggered once in the main > thread and thereafter in two distinct threads. The test verifies that each > value is incremented as it should in the correct thread. It makes sure > there are no missing jumps. I have witnessed multiple watchpoint events > and thread creation events requiring processing at the same time (i.e. > deferred events required) and it handles these correctly. > > I tried an experiment and broke in the thread function in one of the > threads. I then watched a variable that can only be triggered in a > separate thread. That also worked which was cool. > > As I observed before, the actual watchpoint only needs to be set on one > thread and it will trigger in other threads. I can send you the additional > patch if you want to experiment with it. I am still waiting for a machine > with the latest RH kernel on it. I'll let you know if that works the same. I'm glad to hear that it works for you. However, since the kernel sources that I have here patently say that it shouldn't, we need to understand why. Do the RHEL kernels have local changes to watchpoint support? arch/i386/kernel/ptrace.c and arch/i386/kernel/process.c should have all the relevant bits. -- Daniel Jacobowitz