From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12780 invoked by alias); 23 Aug 2004 18:26:00 -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 12771 invoked from network); 23 Aug 2004 18:25:59 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 23 Aug 2004 18:25:59 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.10/8.12.10) with ESMTP id i7NIPwe3030214 for ; Mon, 23 Aug 2004 14:25:58 -0400 Received: from localhost.redhat.com (porkchop.devel.redhat.com [172.16.58.2]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i7NIPwa18115; Mon, 23 Aug 2004 14:25:58 -0400 Received: from gnu.org (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 5F9632B9D; Mon, 23 Aug 2004 14:24:50 -0400 (EDT) Message-ID: <412A3672.5040904@gnu.org> Date: Mon, 23 Aug 2004 18:26:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-GB; rv:1.4.1) Gecko/20040801 MIME-Version: 1.0 To: David Daney Cc: gdb@sources.redhat.com Subject: Re: Unable to step over (n and ni) on mipsel-linux... References: <412649F4.9040002@avtrex.com> <412A25B1.7080308@gnu.org> <412A30E5.9080809@avtrex.com> In-Reply-To: <412A30E5.9080809@avtrex.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2004-08/txt/msg00287.txt.bz2 > Andrew Cagney wrote: > >>>>>GNU gdb 6.2_2004-08-19-cvs >>>>> >> >>>>from the gdb_6_2-branch yesterday. >> >>>>> >>>>>../gdbcvs/src/configure --build=i686-pc-linux --host=mipsel-linux >>>>>--target=mipsel-linux --enable-tui=no >>>>> >>>>>Most of the time when I do next or nexti, gdb is treating it as if I did >>>>>step or stepi. >>>>> >>>>>I have tracked the problem down to this portion of code: >> >>> >>> >>> Sounds like a bug in the MIPS unwind code. Can you build/test with >>> mainline (the fixes won't be backported). >>> > > > I will try the mainline soon. Thanks. > >>> The problem is that, after the step-into the callee, the MIPS unwind >>> code is not correctly unwinding back to the caller's frame-ID. As >>> Theodore notes, this is very compiler dependant. >>> > > > Currently GDB examines the next instruction to see if it is a branch (or > jal or jalr..) to see where to place a temporary breakpoint for single > stepping. > Instead of stepping into a function and checking to see if we are in a > different frame (settting a breakpoint at the return address location), > why not set the breakpoint at the return location before making the > function call? That would mean examining every instruction to determine if it is a call - effectively s/w single step. GDB tries to do avoid doing that so that single-step is faster. > By compiler dependant, do you mean the compiler GDB was built with, or > the one that compiled the target code? For you mipsel-linux-gcc (the one that compiled the target code). Andrew > > >>> Andrew >>> >>> > > > >