From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23857 invoked by alias); 25 Jun 2008 13:11:03 -0000 Received: (qmail 23849 invoked by uid 22791); 25 Jun 2008 13:11:02 -0000 X-Spam-Check-By: sourceware.org Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 25 Jun 2008 13:10:45 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id AB8DB2A95D9; Wed, 25 Jun 2008 09:10:43 -0400 (EDT) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id yd7EI2-ha8u2; Wed, 25 Jun 2008 09:10:43 -0400 (EDT) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id 908E72A95CA; Wed, 25 Jun 2008 09:10:43 -0400 (EDT) Received: by joel.gnat.com (Postfix, from userid 1000) id 3C1B5E7ACD; Wed, 25 Jun 2008 09:10:43 -0400 (EDT) Date: Wed, 25 Jun 2008 13:32:00 -0000 From: Joel Brobecker To: Ulrich Weigand Cc: gdb-patches@sourceware.org Subject: Re: [rfc] Eliminate frame_id_inner comparisons Message-ID: <20080625131043.GD3700@adacore.com> References: <200806192034.m5JKY5gt004879@d12av02.megacenter.de.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200806192034.m5JKY5gt004879@d12av02.megacenter.de.ibm.com> User-Agent: Mutt/1.4.2.2i 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: 2008-06/txt/msg00427.txt.bz2 Hi Ulrich, > ChangeLog: > > * frame.h (struct frame_id): Update comments. > (frame_id_inner): Remove prototype. > (enum unwind_stop_reason): Remove UNWIND_INNER_ID and > UNWIND_SAME_ID, add UNWIND_CYCLE. > * frame.c (struct frame_info): New member "cycle". > (frame_id_inner): Delete. > (frame_find_by_id): Remove frame_id_inner check. > (create_sentinel_frame): Initialize frame->cycle. > (get_prev_frame_1): Remove frame_id_inner check. Check for > cycles in the frame chain using Floyd's algorithm. > Initialize prev_frame->cycle. > (frame_stop_reason_string): Handle UNWIND_CYCLE instead of > UNWIND_INNER_ID and UNWIND_SAME_ID. > > * dummy-frame.c (dummy_frame_push): Use frame_find_by_id to > detect stale dummy frames. > * stack.c (return_command): Directly pop the selected frame. > * infrun.c (handle_inferior_event): Remove dead code. > * i386-tdep.c (i386_push_dummy_call): Update comment. FWIW, I looked at the patch and I don't see any problem with it. > + /* This frame has the same ID some frame inner to it. That means the same ID as some frame -- Joel