From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2339 invoked by alias); 3 Jul 2003 15:10:35 -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 2319 invoked from network); 3 Jul 2003 15:10:34 -0000 Received: from unknown (HELO localhost.redhat.com) (66.30.197.194) by sources.redhat.com with SMTP; 3 Jul 2003 15:10:34 -0000 Received: from redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 4BE812B5F; Thu, 3 Jul 2003 11:10:32 -0400 (EDT) Message-ID: <3F044768.6090403@redhat.com> Date: Thu, 03 Jul 2003 15:10:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.2) Gecko/20030223 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Jafa Cc: gdb@sources.redhat.com Subject: Re: ignore helper no longer works? References: <00db01c3410a$684b0050$0a02a8c0@scenix.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2003-07/txt/msg00063.txt.bz2 > 1) Say it is my responsibility to determine the return address anywhere in > code, even if it means writing a whole lot of code in gdb to simulate the > execution of these stubs. > > 2) Fix gdb at a higher level so that it doesn't try to obtain a return > address from a helper function - instead keep stepping (like it gdb used to > do). Sounds like you've got two problems: - When stepping, the need to identify and single step through trampolines / helpers. - When stopped, the need to back trace out of a trampoline / helper. Given a core file, it isn't possible to `step'. Your unwinder is going to need to identify and dig itself out of that hole. Main thing to do is to not lie - from what I understand of your case, given a callee that jumped to a helper, you'll end up displaying: caller Andrew > I can figure out the FP ok (all be it that it is painful without being able > to see the prologue) - the old system only asked for the FP and after > detecting that it was the same frame, kept stepping. > > BTW - I have also noticed that gdb now does not call ignore_helper for any > step-over operations, instead relying on the tdep to supply the return > address for the stub. It think it always used to call ignore_helper and if > it was a helper then it stepped rather that setting a breakpoint as if it > was a function. > > I don't want to be too quick to butcher infrun - I would appreciate your > advice.