From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29871 invoked by alias); 5 Feb 2004 19:01:16 -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 29855 invoked from network); 5 Feb 2004 19:01:15 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sources.redhat.com with SMTP; 5 Feb 2004 19:01:15 -0000 Received: from drow by nevyn.them.org with local (Exim 4.30 #1 (Debian)) id 1AookV-0002c9-G4 for ; Thu, 05 Feb 2004 14:01:15 -0500 Date: Thu, 05 Feb 2004 19:01:00 -0000 From: Daniel Jacobowitz To: gdb-patches@sources.redhat.com Subject: Re: [RFA] use frame IDs to detect function calls while stepping Message-ID: <20040205190115.GA9918@nevyn.them.org> Mail-Followup-To: gdb-patches@sources.redhat.com References: <20040205044119.GC18961@gnat.com> <20040205171324.GF18961@gnat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040205171324.GF18961@gnat.com> User-Agent: Mutt/1.5.1i X-SW-Source: 2004-02/txt/msg00102.txt.bz2 On Thu, Feb 05, 2004 at 09:13:24PM +0400, Joel Brobecker wrote: > + if (ecs->stop_func_name == NULL > + && step_over_calls == STEP_OVER_UNDEBUGGABLE) > + { > + /* We couldn't determine where we stopped, so we just stepped > + inside undebuggable code. Since we want to step over this > + kind of code, we keep going until the inferior returns from > + the current function. */ The test and the comment don't seem to match. Code with only minimal symbols will still set stop_func_name. > + if (IN_SOLIB_CALL_TRAMPOLINE (stop_pc, ecs->stop_func_name)) > + { > + /* We landed in a shared library call trampoline, so it > + is a subroutine call. */ > + handle_step_into_function (ecs); > + return; > + } > + > + if (frame_id_eq (get_frame_id (get_prev_frame (get_current_frame ())), > + step_frame_id)) > + { > + /* It's a subroutine call. */ > + handle_step_into_function (ecs); > + return; > + } > + get_prev_frame can return NULL. In fact, it generally does in main. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer