From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24100 invoked by alias); 1 Jun 2003 05:59:49 -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 24017 invoked from network); 1 Jun 2003 05:59:48 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 1 Jun 2003 05:59:48 -0000 Received: from int-mx2.corp.redhat.com (nat-pool-rdu-dmz.redhat.com [172.16.52.200] (may be forged)) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id h515xmH32022 for ; Sun, 1 Jun 2003 01:59:48 -0400 Received: from potter.sfbay.redhat.com (potter.sfbay.redhat.com [172.16.27.15]) by int-mx2.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h515xlT20521 for ; Sun, 1 Jun 2003 01:59:47 -0400 Received: from dot.sfbay.redhat.com (dot.sfbay.redhat.com [172.16.24.7]) by potter.sfbay.redhat.com (8.11.6/8.11.6) with ESMTP id h515xk020006 for ; Sat, 31 May 2003 22:59:46 -0700 Received: (from rth@localhost) by dot.sfbay.redhat.com (8.11.6/8.11.6) id h515vpv12195 for gdb@sources.redhat.com; Sat, 31 May 2003 22:57:51 -0700 X-Authentication-Warning: dot.sfbay.redhat.com: rth set sender to rth@redhat.com using -f Date: Sun, 01 Jun 2003 05:59:00 -0000 From: Richard Henderson To: gdb@sources.redhat.com Subject: Re: dwarf-frame.c question Message-ID: <20030601055751.GA12187@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i X-SW-Source: 2003-06/txt/msg00004.txt.bz2 [ Pasted from web archives, sorry. ] Mark Kettenis: > Andrew, it seems that we should tweak the frame code > to make sure that frame_unwind_by_pc is always passed a PC *within* the > function. Andrew Cagney: > True, but how? It would effectively be frame_unwind_address_in_block() but > how reliably/where could it be used? Careful; this silliness of subtracting one is not universal. ABI's with more thought in them (e.g. IA64) require the compiler to put *something* after a noreturn call that ends a function. This being a relatively uncommon case, it does not add much code size, and it solves some of the ambiguity problems you're seeing. r~