From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15158 invoked by alias); 2 May 2002 02:25:39 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 15151 invoked from network); 2 May 2002 02:25:38 -0000 Received: from unknown (HELO nevyn.them.org) (128.2.145.6) by sources.redhat.com with SMTP; 2 May 2002 02:25:38 -0000 Received: from drow by nevyn.them.org with local (Exim 3.35 #1 (Debian)) id 1736Hv-0005w2-00 for ; Wed, 01 May 2002 22:25:43 -0400 Date: Wed, 01 May 2002 19:25:00 -0000 From: Daniel Jacobowitz To: gdb@sources.redhat.com Subject: RFC: Two small remote protocol extensions Message-ID: <20020502022543.GA22594@nevyn.them.org> Mail-Followup-To: gdb@sources.redhat.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.1i X-SW-Source: 2002-05/txt/msg00005.txt.bz2 In making remote thread debugging work on GNU/Linux, I needed two additions to the remote protocol. Neither is strictly necessary, but both are useful, IMHO. They are: - two new replies to the continue/step packets, 'n' and 'x'. They indicate thread creation and death respectively, and are asynchronous; the target is not stopped when they are sent. - A new 'Hs' packet, paralleling Hc and Hg. This sets the "step" thread. Basically, despite a comment that it didn't work earlier on this list, I discovered that lin-lwp does correctly honor `set scheduler-locking'. It works by controlling which threads are resumed by resume_ptid. However, for stepping, inferior_ptid is also consulted. That way all threads can be resumed but a particular thread stepped. The `thread ' command changes the thread to be stepped. resume_ptid is communicated to the remote host. inferior_ptid is not necessarily the same as general_ptid, however - after information requests like `thread apply all bt', for instance. Reading over the above, I suppose I could use general_ptid for this instead, with a slightly smaller patch to remote_resume to guarantee that it is set. That makes a little more sense than my current approach. Still needs a documentation patch to clarify it; I intend to fix up most of the protocol specification (which is woefully out of date, and hideous in texinfo) as soon as I get a chance. Any thoughts on the two above changes? -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer