frame: do not assume unwinding will succeed

In get_frame_unwind_stop_reason, remove the assumption that further frame
unwinding will succeed.

gdb/
2013-02-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* frame.c (get_frame_unwind_stop_reason): Unconditionally call
	get_prev_frame_1.
This commit is contained in:
Markus Metzger 2013-03-18 16:43:05 +01:00
parent 32261e5234
commit 824344ca4f
2 changed files with 8 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2014-01-16 Jan Kratochvil <jan.kratochvil@redhat.com>
* frame.c (get_frame_unwind_stop_reason): Unconditionally call
get_prev_frame_1.
2014-01-16 Jan Kratochvil <jan.kratochvil@redhat.com>
* dwarf2-frame.c (dwarf2_frame_cfa): Move UNWIND_UNAVAILABLE check

View File

@ -2522,13 +2522,10 @@ get_frame_sp (struct frame_info *this_frame)
enum unwind_stop_reason
get_frame_unwind_stop_reason (struct frame_info *frame)
{
/* If we haven't tried to unwind past this point yet, then assume
that unwinding would succeed. */
if (frame->prev_p == 0)
return UNWIND_NO_REASON;
/* Fill-in STOP_REASON. */
get_prev_frame_1 (frame);
gdb_assert (frame->prev_p);
/* Otherwise, we set a reason when we succeeded (or failed) to
unwind. */
return frame->stop_reason;
}