aboutsummaryrefslogtreecommitdiff
path: root/gdb/mips-tdep.c
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1993-09-23 19:03:38 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1993-09-23 19:03:38 +0000
commit3f528883aef905c53a418716d7b3230d66a65440 (patch)
tree0be80b8b097e081c4dae9a2c094719099a97ad70 /gdb/mips-tdep.c
parent6110df28cd9e87b90d5b99d9e35a297780be49ef (diff)
downloadgdb-3f528883aef905c53a418716d7b3230d66a65440.zip
gdb-3f528883aef905c53a418716d7b3230d66a65440.tar.gz
gdb-3f528883aef905c53a418716d7b3230d66a65440.tar.bz2
* mips-tdep.c (mips_frame_chain): If frame size zero, return zero.
* rs6000-tdep.c: Add comment about framelessness.
Diffstat (limited to 'gdb/mips-tdep.c')
-rw-r--r--gdb/mips-tdep.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index f9193ea..82371aa 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -346,7 +346,13 @@ mips_frame_chain(frame)
of stack (or otherwise hosed). If we don't check frame size,
we loop forever if we see a zero size frame. */
if (PROC_FRAME_REG (proc_desc) == SP_REGNUM
- && PROC_FRAME_OFFSET (proc_desc) == 0)
+ && PROC_FRAME_OFFSET (proc_desc) == 0
+ /* Frameless functions, which can happen on the innermost frame
+ or a frame which was innermost when a signal happened, can
+ have frame size zero. No need to check for non-frameless
+ functions in these situations, though (I don't think). */
+ && frame->next != NULL
+ && !frame->next->signal_handler_caller)
return 0;
else
return read_next_frame_reg(frame, PROC_FRAME_REG(proc_desc))