Browse Source

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.
binutils-csl-arm-2005q1-branch
Andrew Cagney 22 years ago
parent
commit
39ee2ff0da
  1. 5
      gdb/ChangeLog
  2. 12
      gdb/frame.c
  3. 3
      gdb/hppa-tdep.c

5
gdb/ChangeLog

@ -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

@ -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);
}

3
gdb/hppa-tdep.c

@ -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…
Cancel
Save