From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12828 invoked by alias); 6 Sep 2008 04:16:23 -0000 Received: (qmail 12818 invoked by uid 22791); 6 Sep 2008 04:16:22 -0000 X-Spam-Check-By: sourceware.org Received: from NaN.false.org (HELO nan.false.org) (208.75.86.248) by sourceware.org (qpsmtpd/0.31) with ESMTP; Sat, 06 Sep 2008 04:15:43 +0000 Received: from nan.false.org (localhost [127.0.0.1]) by nan.false.org (Postfix) with ESMTP id 965E2981EE; Sat, 6 Sep 2008 04:15:41 +0000 (GMT) Received: from caradoc.them.org (22.svnf5.xdsl.nauticom.net [209.195.183.55]) by nan.false.org (Postfix) with ESMTP id 236F69810C; Sat, 6 Sep 2008 04:15:41 +0000 (GMT) Received: from drow by caradoc.them.org with local (Exim 4.69) (envelope-from ) id 1KbpD2-0002s3-4n; Sat, 06 Sep 2008 00:15:40 -0400 Date: Sat, 06 Sep 2008 04:16:00 -0000 From: Daniel Jacobowitz To: Jason Molenda Cc: Michael Snyder , "gdb@sourceware.org" Subject: Re: [remote protocol] step range? Message-ID: <20080906041540.GA10729@caradoc.them.org> Mail-Followup-To: Jason Molenda , Michael Snyder , "gdb@sourceware.org" References: <48C05DAF.3070705@vmware.com> <61DDBF42-6D9B-4E8C-9B0C-CB9BB68F5F11@apple.com> <48C09B98.3010506@vmware.com> <693D921E-42E7-474A-9DCB-82FAA2DE3679@apple.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <693D921E-42E7-474A-9DCB-82FAA2DE3679@apple.com> User-Agent: Mutt/1.5.17 (2008-05-11) X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2008-09/txt/msg00040.txt.bz2 On Fri, Sep 05, 2008 at 05:16:15PM -0700, Jason Molenda wrote: > For what it's worth we use the remote protocol for debugging applications > on the iPhone / iPod Touch devices. When we first got it up and running, > we saw command-line level "step" commands taking multiple (4-5!) seconds > to complete. We optimized it to no end and got this down to something > like .2 seconds without doing anything too weird to the protocol. We > didn't have any single-instruction-step feature so we didn't even consider > trying to push range-stepping down to the device. I find this somewhat surprising - you don't need nearly as much of a disassembler to do this for ARM as it sounds like from your comments. I've written the code at least twice now, and for pre-Thumb-2 targets it's quite straightforward. And it saves enough round trips to be a win, as long as you have somewhere closer to the target that can run it. > Since we've established that you must have single-instruction-step > capability in the target to do this, I think it's safe to assume that > only the current continue thread will execute. Well, in hosted environments the hardware single step bit is often context-switched; e.g. %eflags. Or in multi-core systems there may actually be one per 'thread'. -- Daniel Jacobowitz CodeSourcery