From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27116 invoked by alias); 5 Nov 2004 04:49:22 -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 27029 invoked from network); 5 Nov 2004 04:49:21 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sourceware.org with SMTP; 5 Nov 2004 04:49:21 -0000 Received: from drow by nevyn.them.org with local (Exim 4.34 #1 (Debian)) id 1CPw2I-0003bR-87; Thu, 04 Nov 2004 23:49:18 -0500 Date: Fri, 05 Nov 2004 04:49:00 -0000 From: Daniel Jacobowitz To: Jeff Johnston Cc: Eli Zaretskii , cagney@gnu.org, gdb-patches@sources.redhat.com Subject: Re: [RFA]: Watchpoints per thread patch Message-ID: <20041105044917.GA13554@nevyn.them.org> Mail-Followup-To: Jeff Johnston , Eli Zaretskii , cagney@gnu.org, gdb-patches@sources.redhat.com References: <4175A9C9.8040300@redhat.com> <41769FF3.7010801@gnu.org> <20041020173035.GA26622@nevyn.them.org> <418022DE.204@redhat.com> <01c4bca9$Blat.v2.2.2$adcffb00@zahav.net.il> <418A741C.4080306@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <418A741C.4080306@redhat.com> User-Agent: Mutt/1.5.5.1+cvs20040105i X-SW-Source: 2004-11/txt/msg00073.txt.bz2 On Thu, Nov 04, 2004 at 01:25:32PM -0500, Jeff Johnston wrote: > Daniel, I have moved the observer notification to add_thread as suggested. > To do this, I had to move a few things in attach_thread. As well, I had to > add another part of my full patch in because the ptid that add_thread knows > about is in the wrong format (pid, 0, tid). The low-level insert > watchpoint code needs the lwp so I have added in my target_get_lwp change. > I realize you have plans to change how the ptid is kept, but until that is > fleshed out, this change is required. I used a call-back to allow > breakpoint.c which knows how to handle watchpoints to communicate with the > low-level linux code that knows how to insert/remove a watchpoint. I don't want to add target_get_lwp only to remove it a couple weeks later! I don't think this patch is appropriate for 6.3; for the mainline, we have plenty of time, so please wait a little longer. My plan is to first rename thread-db.c to mark it as clearly GNU/Linux specific, as I was asked to do, and then change the format of ptid_t used by thread-db to make finding the LWP trivial. It should not take long. I will try to post the first part tomorrow. > + /* For every active watchpoint, we need to insert the watchpoint on > + the new thread. */ > + if ((b->loc_type == bp_loc_hardware_watchpoint > + || b->owner->type == bp_watchpoint)) You were going to fix this bit. Also, I have been thinking about your approach. You are hooking native code in via an observer; observers bypass the target stack. It worked while you were only calling this observer from the GNU/Linux native support in thread-db.c. But now it will mess up if you use a native ia64 debugger connected to a remote target, in which case we should never enter the ia64-nat code - there's nothing to ptrace. The observer could move back to thread-db, but as Andrew keeps reminding me, there are situations where we could take advantage of thread-db for things like core files. This is a target stack activity; I think we need to find a way to do it without violating the abstraction of the target stack. -- Daniel Jacobowitz