This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [rfc] Eliminate frame_id_inner comparisons
- From: Joel Brobecker <brobecker at adacore dot com>
- To: Ulrich Weigand <uweigand at de dot ibm dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Wed, 25 Jun 2008 09:10:43 -0400
- Subject: Re: [rfc] Eliminate frame_id_inner comparisons
- References: <200806192034.m5JKY5gt004879@d12av02.megacenter.de.ibm.com>
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