From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13845 invoked by alias); 9 Aug 2002 15:27:50 -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 13831 invoked from network); 9 Aug 2002 15:27:47 -0000 Received: from unknown (HELO localhost.redhat.com) (216.138.202.10) by sources.redhat.com with SMTP; 9 Aug 2002 15:27:47 -0000 Received: from ges.redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id E56FE3C71; Fri, 9 Aug 2002 11:27:44 -0400 (EDT) Message-ID: <3D53DF70.6050209@ges.redhat.com> Date: Fri, 09 Aug 2002 08:27:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.0) Gecko/20020802 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Kevin Buettner Cc: gdb-patches@sources.redhat.com Subject: Re: [RFA] Revise assertion in frame_saved_regs_register_unwind() References: <1020808210553.ZM24863@localhost.localdomain> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2002-08/txt/msg00212.txt.bz2 (I lost this one, thought you'd committed it). > In the course of rewriting mips_get_saved_register(), I found that > that an assertion in blockframe.c was erroneously failing. See > comment in patch for details. Also, note that set_unwind_by_pc() > sets the unwinder to frame_saved_regs_register_unwind() for the > non-generic dummy frame case. > > (This patch is a prerequisite for my upcoming mips_get_saved_register() > rewrite.) > > Okay to commit? > > * blockframe.c (frame_saved_regs_register_unwind): Revise > PC_IN_CALL_DUMMY_ASSERTION to only apply when generic dummy > frames are in use. Yes. (Of course all targets should be using generic dummy frames but until then :-). thanks Andrew > Index: blockframe.c > =================================================================== > RCS file: /cvs/src/src/gdb/blockframe.c,v > retrieving revision 1.34 > diff -u -p -r1.34 blockframe.c > --- blockframe.c 24 Jul 2002 14:38:55 -0000 1.34 > +++ blockframe.c 8 Aug 2002 20:54:14 -0000 > @@ -1410,7 +1410,11 @@ frame_saved_regs_register_unwind (struct > /* There is always a frame at this point. And THIS is the frame > we're interested in. */ > gdb_assert (frame != NULL); > - gdb_assert (!PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame)); > + /* If we're using generic dummy frames, we'd better not be in a call > + dummy. (generic_call_dummy_register_unwind ought to have been called > + instead.) */ > + gdb_assert (!(USE_GENERIC_DUMMY_FRAMES > + && PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))); > > /* Load the saved_regs register cache. */ > if (frame->saved_regs == NULL) > >