From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20515 invoked by alias); 26 Mar 2002 17:49:47 -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 20508 invoked from network); 26 Mar 2002 17:49:46 -0000 Received: from unknown (HELO dberlin.org) (64.246.6.106) by sources.redhat.com with SMTP; 26 Mar 2002 17:49:46 -0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by dberlin.org (8.11.6/8.11.6) with ESMTP id g2QHnkm10526; Tue, 26 Mar 2002 12:49:46 -0500 Date: Tue, 26 Mar 2002 09:49:00 -0000 From: Daniel Berlin To: Andrew Cagney cc: gdb-patches@sources.redhat.com Subject: Re: [PATCH] Let dwarf2 CFI's execute_stack_op be used outside of CFI In-Reply-To: <3CA0AF14.8050801@cygnus.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-SW-Source: 2002-03/txt/msg00494.txt.bz2 On Tue, 26 Mar 2002, Andrew Cagney wrote: > > On Mon, 25 Mar 2002, Andrew Cagney wrote: > > > > > >> > This patch simply adds an external entry point (dwarf2_execute_stack_op), > >> > that doesn't require the CFA context. It also adds code so that when the > >> > context passed to execute_stack_op is NULL, we use read_register_gen to > >> > get registers. > > > >> > >> Hmm, where are you going here? > > > > > > Um, rather than have multiple dwarf2 stack op executors, have one. > > In order to do this, it needs to not require CFA context to be able to > > read registers. > > Shouldn't the dwarf2 location expression evaluator be separated out > (dwarf2loc?) and be parameterized with both the frame it is to operate > within and the expression it is to evaluate. Yeah, so? I'm doing this incrementally. The first step is adding an external entry point, then moving it outside of dwarf2cfi.c, then modifying it to take a struct frame info, etc. I'm trying to do this without breaking anything. It currently *is* parameterized with both the frame and expression. The problem is that the frame it expects isn't a "struct frame_info", it's a dwarf2 frame context. > If the expression > evaluator needs the value of a register from the frame it just calls > whatever the frame-get-reg-value(frame) function is. > > Andrew > >