* frame.c (get_prev_frame_1): Call frame_unwind_find_by_frame

directly instead of get_frame_id.
This commit is contained in:
Daniel Jacobowitz 2008-06-30 17:59:03 +00:00
parent e6fde20876
commit 0d254d6f30
2 changed files with 13 additions and 3 deletions

View file

@ -1,3 +1,8 @@
2008-06-30 Daniel Jacobowitz <dan@codesourcery.com>
* frame.c (get_prev_frame_1): Call frame_unwind_find_by_frame
directly instead of get_frame_id.
2008-06-30 Luis Machado <luisgpm@br.ibm.com> 2008-06-30 Luis Machado <luisgpm@br.ibm.com>
* rs6000-tdep.c (ppc_displaced_step_fixup): New function. * rs6000-tdep.c (ppc_displaced_step_fixup): New function.

View file

@ -1180,9 +1180,13 @@ 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 /* If the frame unwinder hasn't been selected yet, we must do so
setting a stop reason. */ before setting prev_p; otherwise the check for misbehaved
this_id = get_frame_id (this_frame); sniffers will think that this frame's sniffer tried to unwind
further (see frame_cleanup_after_sniffer). */
if (this_frame->unwind == NULL)
this_frame->unwind
= frame_unwind_find_by_frame (this_frame, &this_frame->prologue_cache);
this_frame->prev_p = 1; this_frame->prev_p = 1;
this_frame->stop_reason = UNWIND_NO_REASON; this_frame->stop_reason = UNWIND_NO_REASON;
@ -1190,6 +1194,7 @@ get_prev_frame_1 (struct frame_info *this_frame)
/* 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)