From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31018 invoked by alias); 21 Aug 2003 14:01:32 -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 30980 invoked from network); 21 Aug 2003 14:01:30 -0000 Received: from unknown (HELO localhost.redhat.com) (207.219.125.105) by sources.redhat.com with SMTP; 21 Aug 2003 14:01:30 -0000 Received: from redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 16F552B7F; Thu, 21 Aug 2003 10:01:22 -0400 (EDT) Message-ID: <3F44D0B1.8010009@redhat.com> Date: Thu, 21 Aug 2003 14:01:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.2) Gecko/20030820 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Daniel Jacobowitz Cc: gdb-patches@sources.redhat.com Subject: Re: Powerpc and software single step References: <16185.27333.689024.383508@kitch0.watson.ibm.com> <1030819175512.ZM31220@localhost.localdomain> <20030819191300.GA24336@nevyn.them.org> <3F42DD3C.9020508@redhat.com> <20030820023335.GA1148@nevyn.them.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2003-08/txt/msg00361.txt.bz2 > On Tue, Aug 19, 2003 at 10:30:20PM -0400, Andrew Cagney wrote: > >> > >> >Could we do this slightly differently? SOFTWARE_SINGLE_STEP_P is used >> >in two non-platform-specific files: infptrace.c for a sanity check, and >> >infrun.c. In infrun, the only line which matters for this case is in >> >resume: >> > if (SOFTWARE_SINGLE_STEP_P () && step) >> > >> >Why not add a hook to check there which lets the user use software >> >single step? It'll require playing with the target macros; we'd need >> >something like: >> > SOFTWARE_SINGLE_STEP - perform software single step >> > SOFTWARE_SINGLE_STEP_P - SOFTWARE_SINGLE_STEP available >> > SOFTWARE_SINGLE_STEP_ONLY_P - no hardware singlestep available >> > (check that in infptrace instead of SOFTWARE_SINGLE_STEP_P?) >> > >> >I've wanted to flip back and forth at runtime before. > >> >> See: Cleanup software single step. >> http://sources.redhat.com/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gdb&pr=120 >> (but don't take the suggested solution literally). >> >> I think kevin was playing with it (?) - search the mail archives. This >> needs to be fixed - I don't think a workaround is acceptable. > > > I _think_ that's a different problem... It's all part of a `software single step is sideways / backwards problem'. Missing from the PR are the gdbarch.sh comments (and references to earlier discussion): # FIXME/cagney/2001-01-18: This should be split in two. A target method that indicates if # the target needs software single step. An ISA method to implement it. # # FIXME/cagney/2001-01-18: This should be replaced with something that inserts breakpoints # using the breakpoint system instead of blatting memory directly (as with rs6000). # # FIXME/cagney/2001-01-18: The logic is backwards. It should be asking if the target can # single step. If not, then implement single step using breakpoints. "infrun.c" should make its decision based on: - user selectable single step (yes, no, auto -> auto boolean variable) (new to this thread) - target selectable single step - architecture implement's software single step (which needs a new mechanism) Adding a user command would side step the middle part - target vector addition to indicate that the target supports software single step - but would at least provide a workaround. > In any case it's definitely a real problem. See the post I made a few > days ago about a thread debugging problem which causes single steps to > turn into continues. Andrew