From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11446 invoked by alias); 9 Apr 2002 18:00:25 -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 11426 invoked from network); 9 Apr 2002 18:00:23 -0000 Received: from unknown (HELO dberlin.org) (64.246.6.106) by sources.redhat.com with SMTP; 9 Apr 2002 18:00:23 -0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by dberlin.org (8.11.6/8.11.6) with ESMTP id g39I0Mm13619; Tue, 9 Apr 2002 14:00:22 -0400 Date: Tue, 09 Apr 2002 11:00:00 -0000 From: Daniel Berlin To: Andrew Cagney cc: gdb@sources.redhat.com Subject: Re: think-o: dwarf2 CFA != frame->frame (x86-64) In-Reply-To: <3CB32BB1.2010007@cygnus.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-SW-Source: 2002-04/txt/msg00136.txt.bz2 On Tue, 9 Apr 2002, Andrew Cagney wrote: > > On Tue, 9 Apr 2002, Andrew Cagney wrote: > > > > > >> > > >> > It might just be misnamed. > > > >> > >> No. DW_OP_fbreg refers explicitly to DW_AT_frame_base. CFA is a > >> concept local to the CFI. They would typically evaluate to the same > >> value though. > > > > DW_AT_frame_base is part of the .debug_info section. > > This is symbolic debug info, none of which is required to be present in an > > executable > > On the other hand, the CFA info is required to be present on x86-64, > > specifically for the purposes of unwinding the stack. > > > > So you can't say that it should use DW_AT_frame_base. It can't. > > DW_AT_frame_base is a completely different concept. It is not intended to > > have anything to do with unwinding the stack. It also has nothing > > necessarily to do with a real frame base. See 3.3.5. This is why it's in > > quotes. Most compiler use it in way 1 described in that section, to > > simplify location descriptions. > > (Didn't I point you at 3.3.5? :-). > > Location expressions use DW_OP_fbreg when they need to refer to the > stack. DW_OP_fpreg is defined in terms of DW_AT_frame_base. Can you > please point me to the section where a location expression OP directly > (not indirectly as in a register) refers to the CFA? No, why would I need to? For all intents and purposes, you could severe the CFA sections of the dwarf2 spec, and place them into something called "the CFA spec". It doesn't change the fact that frame->base with CFA info can't use DW_AT_frame_base. You claimed it should. It can't. > > For all intents and purposes, the CFA is the frame base when using dwarf2 > > cfi info. > > If you read my original e-mail, you'll notice that I observed that the > two most likely end up having the same value. > > Andrew > >