2004-12-12 Andrew Cagney <cagney@gnu.org>

* frame.c (get_prev_frame): When unwinding normal frames, check
	that the PC isn't zero.
	* hppa-tdep.c (hppa_stub_frame_unwind_cache): Delete check for a
	zero PC.
This commit is contained in:
Andrew Cagney 2004-12-12 16:26:17 +00:00
parent 91a533d47b
commit 39ee2ff0da
3 changed files with 17 additions and 3 deletions

View File

@ -1,5 +1,10 @@
2004-12-12 Andrew Cagney <cagney@gnu.org>
* frame.c (get_prev_frame): When unwinding normal frames, check
that the PC isn't zero.
* hppa-tdep.c (hppa_stub_frame_unwind_cache): Delete check for a
zero PC.
* MAINTAINERS: Reword description of what "Target Instruction Set
Architectures" covers.

View File

@ -1257,6 +1257,18 @@ get_prev_frame (struct frame_info *this_frame)
return NULL;
}
/* Assume that the only way to get a zero PC is through something
like a SIGSEGV or a dummy frame, and hence that NORMAL frames
will never unwind a zero PC. */
if (this_frame->level > 0
&& get_frame_type (this_frame) == NORMAL_FRAME
&& get_frame_type (get_next_frame (this_frame)) == NORMAL_FRAME
&& get_frame_pc (this_frame) == 0)
{
frame_debug_got_null_frame (gdb_stdlog, this_frame, "zero PC");
return NULL;
}
return get_prev_frame_1 (this_frame);
}

View File

@ -2105,9 +2105,6 @@ hppa_stub_frame_unwind_cache (struct frame_info *next_frame,
if (*this_cache)
return *this_cache;
if (frame_pc_unwind (next_frame) == 0)
return NULL;
info = FRAME_OBSTACK_ZALLOC (struct hppa_stub_unwind_cache);
*this_cache = info;
info->saved_regs = trad_frame_alloc_saved_regs (next_frame);