2004-12-07 Randolph Chung <tausq@debian.org>

* hppa-tdep.c (hppa_stub_Frame_unwind_cache): Stop unwinding if
	unwinding from a frame with pc == 0.
	(hppa_stub_frame_this_id): Likewise.
	(hppa_stub_frame_prev_register): Only provide real values if the frame
	cache is not NULL.
This commit is contained in:
Randolph Chung 2004-12-08 01:44:02 +00:00
parent 419b8bfb23
commit f1b38a5791
2 changed files with 23 additions and 3 deletions

View File

@ -1,3 +1,11 @@
2004-12-07 Randolph Chung <tausq@debian.org>
* hppa-tdep.c (hppa_stub_Frame_unwind_cache): Stop unwinding if
unwinding from a frame with pc == 0.
(hppa_stub_frame_this_id): Likewise.
(hppa_stub_frame_prev_register): Only provide real values if the frame
cache is not NULL.
2004-12-07 Randolph Chung <tausq@debian.org>
* solib-som.c: New file.

View File

@ -2092,6 +2092,9 @@ 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);
@ -2126,7 +2129,11 @@ hppa_stub_frame_this_id (struct frame_info *next_frame,
{
struct hppa_stub_unwind_cache *info
= hppa_stub_frame_unwind_cache (next_frame, this_prologue_cache);
*this_id = frame_id_build (info->base, frame_pc_unwind (next_frame));
if (info)
*this_id = frame_id_build (info->base, frame_func_unwind (next_frame));
else
*this_id = null_frame_id;
}
static void
@ -2138,8 +2145,13 @@ hppa_stub_frame_prev_register (struct frame_info *next_frame,
{
struct hppa_stub_unwind_cache *info
= hppa_stub_frame_unwind_cache (next_frame, this_prologue_cache);
hppa_frame_prev_register_helper (next_frame, info->saved_regs, regnum,
optimizedp, lvalp, addrp, realnump, valuep);
if (info)
hppa_frame_prev_register_helper (next_frame, info->saved_regs, regnum,
optimizedp, lvalp, addrp, realnump,
valuep);
else
error ("Requesting registers from null frame.\n");
}
static const struct frame_unwind hppa_stub_frame_unwind = {