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:
parent
91a533d47b
commit
39ee2ff0da
|
@ -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.
|
||||
|
||||
|
|
12
gdb/frame.c
12
gdb/frame.c
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue