diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1993-09-23 19:03:38 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1993-09-23 19:03:38 +0000 |
commit | 3f528883aef905c53a418716d7b3230d66a65440 (patch) | |
tree | 0be80b8b097e081c4dae9a2c094719099a97ad70 /gdb/mips-tdep.c | |
parent | 6110df28cd9e87b90d5b99d9e35a297780be49ef (diff) | |
download | gdb-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.c | 8 |
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)) |