From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29771 invoked by alias); 4 Dec 2003 00:55:22 -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 29764 invoked from network); 4 Dec 2003 00:55:20 -0000 Received: from unknown (HELO takamaka.act-europe.fr) (209.53.16.177) by sources.redhat.com with SMTP; 4 Dec 2003 00:55:20 -0000 Received: by takamaka.act-europe.fr (Postfix, from userid 507) id 7C47E47D5B; Wed, 3 Dec 2003 16:55:21 -0800 (PST) Date: Thu, 04 Dec 2003 00:55:00 -0000 From: Joel Brobecker To: Andrew Cagney Cc: gdb-patches@sources.redhat.com Subject: Re: [RFA] OSF/1 - "next" over prologueless function call Message-ID: <20031204005521.GD716@gnat.com> References: <20031202042646.GW1186@gnat.com> <3FCD6468.9020708@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3FCD6468.9020708@gnu.org> User-Agent: Mutt/1.4i X-SW-Source: 2003-12/txt/msg00098.txt.bz2 > See my recent comments further down in that file. I think GDB should be > using: > > frame_id_unwind(current_frame) == frame_id_from_before_stepi > > to determine if it did a step into a function. What happens if that is > used? Sounds like a good idea, almost obvious actually :-). I tried the following change on osf1 and x86-linux without any regression, and it does solve the problem on osf1. However, I tried it on sparc-solaris with the gdb-6.0 sources because I knew this target hasn't transitioned to the new frame framework. It doesn't look like GDB is liking this change there (I've got a lot of timeouts in call-ar-st). I am currently retrying on the head right now, hoping the testsuite completes in a reasonable amount of time. --- infrun.c 25 Nov 2003 16:01:36 -0000 1.122 +++ infrun.c 3 Dec 2003 19:24:07 -0000 @@ -2473,6 +2473,8 @@ process_event_stop_test: } if (((stop_pc == ecs->stop_func_start /* Quick test */ + || frame_id_eq (get_frame_id (get_prev_frame (get_current_frame ())), + step_frame_id) || in_prologue (stop_pc, ecs->stop_func_start)) && !IN_SOLIB_RETURN_TRAMPOLINE (stop_pc, ecs->stop_func_name)) || IN_SOLIB_CALL_TRAMPOLINE (stop_pc, ecs->stop_func_name) Stay tuned. -- Joel