* frame.c (get_prev_frame_1): Build frame id before setting

this_frame->prev_p, not after.
This commit is contained in:
Pedro Alves 2008-05-20 22:21:19 +00:00
parent 79afeace62
commit 8fa75a5d17
2 changed files with 10 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2008-05-21 Pedro Alves <pedro@codesourcery.com>
* frame.c (get_prev_frame_1): Build frame id before setting
this_frame->prev_p, not after.
2008-05-21 Nick Roberts <nickrob@snap.net.nz> 2008-05-21 Nick Roberts <nickrob@snap.net.nz>
* annotate.c (annotate_new_thread): New function for new-thread * annotate.c (annotate_new_thread): New function for new-thread

View file

@ -1179,13 +1179,17 @@ get_prev_frame_1 (struct frame_info *this_frame)
} }
return this_frame->prev; return this_frame->prev;
} }
/* If the frame id hasn't been built yet, it must be done before
setting a stop reason. */
this_id = get_frame_id (this_frame);
this_frame->prev_p = 1; this_frame->prev_p = 1;
this_frame->stop_reason = UNWIND_NO_REASON; this_frame->stop_reason = UNWIND_NO_REASON;
/* Check that this frame's ID was valid. If it wasn't, don't try to /* Check that this frame's ID was valid. If it wasn't, don't try to
unwind to the prev frame. Be careful to not apply this test to unwind to the prev frame. Be careful to not apply this test to
the sentinel frame. */ the sentinel frame. */
this_id = get_frame_id (this_frame);
if (this_frame->level >= 0 && !frame_id_p (this_id)) if (this_frame->level >= 0 && !frame_id_p (this_id))
{ {
if (frame_debug) if (frame_debug)