From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20767 invoked by alias); 13 Dec 2004 03:37:21 -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 20703 invoked from network); 13 Dec 2004 03:37:11 -0000 Received: from unknown (HELO arwen.tausq.org) (64.81.244.109) by sourceware.org with SMTP; 13 Dec 2004 03:37:11 -0000 Received: by arwen.tausq.org (Postfix, from userid 1000) id 03F376BE6E; Sun, 12 Dec 2004 19:37:07 -0800 (PST) Date: Mon, 13 Dec 2004 04:06:00 -0000 From: Randolph Chung To: Andrew Cagney Cc: gdb-patches@sources.redhat.com Subject: Re: [rfa] Add some flags to tramp frame unwinder Message-ID: <20041213033707.GI29171@tausq.org> Reply-To: Randolph Chung References: <20041209172303.GF29171@tausq.org> <41BC730C.6050609@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <41BC730C.6050609@gnu.org> X-GPG: for GPG key, see http://www.tausq.org/gpg.txt User-Agent: Mutt/1.5.6+20040722i X-SW-Source: 2004-12/txt/msg00351.txt.bz2 > Instead of this, delete the test and in its place add a comment > explaining what was there. I just hit another similar case - signal > trampolines on altstacks - where there's either/or a valid symbol or > segment. ok, checked in the following 2004-12-12 Randolph Chung * tramp-frame.c (tramp_frame_sniffer): Allow frames with names or sections to be trampolines too. Index: tramp-frame.c =================================================================== RCS file: /cvs/src/src/gdb/tramp-frame.c,v retrieving revision 1.7 diff -u -p -r1.7 tramp-frame.c --- tramp-frame.c 7 Nov 2004 12:54:58 -0000 1.7 +++ tramp-frame.c 13 Dec 2004 01:35:42 -0000 @@ -122,19 +122,12 @@ tramp_frame_sniffer (const struct frame_ const struct tramp_frame *tramp = self->unwind_data->tramp_frame; CORE_ADDR pc = frame_pc_unwind (next_frame); CORE_ADDR func; - char *name; struct tramp_frame_cache *tramp_cache; - /* If the function has a valid symbol name, it isn't a - trampoline. */ - find_pc_partial_function (pc, &name, NULL, NULL); - if (name != NULL) - return 0; - /* If the function lives in a valid section (even without a starting - point) it isn't a trampoline. */ - if (find_pc_section (pc) != NULL) - return 0; - /* Finally, check that the trampoline matches at PC. */ + /* tausq/2004-12-12: We used to assume if pc has a name or is in a valid + section, then this is not a trampoline. However, this assumption is + false on HPUX which has a signal trampoline that has a name; it can + also be false when using an alternative signal stack. */ func = tramp_frame_start (tramp, next_frame, pc); if (func == 0) return 0; randolph -- Randolph Chung Debian GNU/Linux Developer, hppa/ia64 ports http://www.tausq.org/