From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29407 invoked by alias); 30 Jul 2007 21:17:47 -0000 Received: (qmail 29399 invoked by uid 22791); 30 Jul 2007 21:17:46 -0000 X-Spam-Check-By: sourceware.org Received: from shell4.BAYAREA.NET (HELO shell4.bayarea.net) (209.128.82.1) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 30 Jul 2007 21:17:40 +0000 Received: (qmail 8378 invoked from network); 30 Jul 2007 14:17:36 -0700 Received: from 209-128-106-254.bayarea.net (HELO ?192.168.20.7?) (209.128.106.254) by shell4.bayarea.net with SMTP; 30 Jul 2007 14:17:36 -0700 Message-ID: <46AE5570.7080202@eagercon.com> Date: Mon, 30 Jul 2007 22:01:00 -0000 From: Michael Eager User-Agent: Thunderbird 1.5.0.9 (X11/20070102) MIME-Version: 1.0 To: Wenbo Yang CC: Mark Kettenis , gdb@sources.redhat.com Subject: Re: frame cache References: <46A648BC.8070105@eagercon.com> <46A98934.5040902@simplnano.com> In-Reply-To: <46A98934.5040902@simplnano.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2007-07/txt/msg00212.txt.bz2 Wenbo Yang wrote: > Michael Eager wrote: > >> Perhaps so, I don't see where other targets check for debug >> info before calling analyze_prologue(). For example, on i386, >> i386_analyze_prologue() is called each and every time that >> i386_skip_prologue() is called. > > It depends on target . If you register dwarf2 frame sniffers to gdbarch, > and your compiler can emit proper debugging information, gdb will not > call analyze_prologue(). At least for our target(I did the porting), it > works as Mark Kettenis said: > "prologue analysis should only be done as a last resort, i.e. when > proper debug information is not available. " Which target? >> I don't see where there is any test in symtab.c or infrun.c >> which tests for debug info before calling SKIP_PROLOGUE which >> calls _skip_prologue. > > Because if you want to use debugging information to skip prologue, you > write the code in this function. So, test should be place here in this > function. As I mentioned, in x86 or PowerPC there is no code to bypass analyzing the prologue, even if there is debug info. If prologue analysis is truly to be done "only as a last resort", and I agree that this should be the case, then this seems not to be represented in the gdb code. If I've missed where this is done, feel free to point me at the correct code. -- Michael Eager eager@eagercon.com 1960 Park Blvd., Palo Alto, CA 94306 650-325-8077