From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25538 invoked by alias); 3 Jan 2007 14:43:09 -0000 Received: (qmail 25528 invoked by uid 22791); 3 Jan 2007 14:43:08 -0000 X-Spam-Check-By: sourceware.org Received: from nevyn.them.org (HELO nevyn.them.org) (66.93.172.17) by sourceware.org (qpsmtpd/0.31.1) with ESMTP; Wed, 03 Jan 2007 14:43:03 +0000 Received: from drow by nevyn.them.org with local (Exim 4.63) (envelope-from ) id 1H27KX-0003KP-5B; Wed, 03 Jan 2007 09:43:01 -0500 Date: Wed, 03 Jan 2007 14:43:00 -0000 From: Daniel Jacobowitz To: Mark Kettenis Cc: gdb-patches@sourceware.org Subject: Re: [patch RFC] Re: Notes on a frame_unwind_address_in_block problem Message-ID: <20070103144300.GA12452@nevyn.them.org> Mail-Followup-To: Mark Kettenis , gdb-patches@sourceware.org References: <20060706222157.GA1377@nevyn.them.org> <200607132020.k6DKKCSB023812@elgar.sibelius.xs4all.nl> <20060718183910.GB17864@nevyn.them.org> <20070101191927.GA14930@nevyn.them.org> <200701011954.l01Js85r031019@brahms.sibelius.xs4all.nl> <20070101200248.GA19073@nevyn.them.org> <200701031137.l03Bb0rT031898@brahms.sibelius.xs4all.nl> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200701031137.l03Bb0rT031898@brahms.sibelius.xs4all.nl> User-Agent: Mutt/1.5.13 (2006-08-11) X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2007-01/txt/msg00062.txt.bz2 On Wed, Jan 03, 2007 at 12:37:00PM +0100, Mark Kettenis wrote: > If you think a bit further (almost) all cases where we currently call > frame_unwind_address_in_block() in sniffers, we really need to specify > THIS_FRAME's type explicitly. So signal frame sniffers would need to > do call frame_unwind_address_in_block (next_frame, SIGTRAMP_FRAME). > Doing so in the dwarf2_signal_frame_this_id() would fix the bug we're > trying to fix. That's much more elegant than what I had. Thanks a lot! I'll try it. In dwarf2_frame_cache I'll need to fetch the type from THIS frame; normally unwinders avoid looking at that, but there's no iron reason why they must, so it should be fine. I think that this will convert most calls to either pass NORMAL_FRAME or call the non-unwind version - there's a lot of potential call sites which call frame_pc_unwind instead, because they know that the function doesn't do anything for signal frames, so there won't be any hardcoded uses of the unwind version with SIGNAL_FRAME. -- Daniel Jacobowitz CodeSourcery