From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13949 invoked by alias); 9 Jan 2003 03:06:23 -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 13942 invoked from network); 9 Jan 2003 03:06:21 -0000 Received: from unknown (HELO localhost.redhat.com) (216.138.202.10) by 209.249.29.67 with SMTP; 9 Jan 2003 03:06:21 -0000 Received: from redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id C82A63ED6; Wed, 8 Jan 2003 22:06:12 -0500 (EST) Message-ID: <3E1CE724.2090401@redhat.com> Date: Thu, 09 Jan 2003 03:06:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.1) Gecko/20021211 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Daniel Jacobowitz Cc: gdb@sources.redhat.com Subject: Re: `chain-frame' References: <3E1CD9F5.4090607@redhat.com> <20030109023850.GA9277@nevyn.them.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2003-01/txt/msg00109.txt.bz2 > I'm trying, but I still don't quite see how you're laying this out. > All help welcomed! Maybe I should look over your WIP again; has it > changed since you last posted it? It's changed. I'm going to cut a branch. > regcache-frame (regs-frame?): >> A frame that maps directly onto the register cache. > > > Doesn't unwind, since we're at the top. Nope! At the bottom, and it does unwind. This unwinds to the ``inner most frame''. Instead of calling create_new_frame(), get_current_frame() creates this frame and then unwinds it. If get_current_frame()'s attempt at unwinding this frame fails. A fake frame is created (or even the regs-frame) and returned This guarentees that `there is always a frame'. For the moment it unwinds the FP/PC using read_fp() and read_pc(), and the registers by reading the register cache. Eventually, it can use methods that: don't suffer from decr-pc-after-break; don't assume global state; and also refer to the thread's stop reason when determining the pc/fp. Another name for this one is: sentinal-frame since it acts as the sentinal one beyond the inner most frame. > fake-frame (?): >> Recently discussed, would also use dwarf2cfi but with fake debug >> information. > > > Unwinds using the CFI reader and fake DWARF-2 CFI information. Someday > maybe have a more generalized "unwind language"; that's my hope, > anyway. So we don't have to encode and decode the CFI gunk. Yes, and Yes. The later can just plug in. > And the other group of frames just use the current frame chain code, > and poke at the stack to find the saved registers; maybe > "stack-chain-frame"? Oops, yes. Just: chain-frame: though I think. Andrew