* mips-tdep.c (mips_frame_chain): If frame size zero, return zero.
authorJim Kingdon <jkingdon@engr.sgi.com>
Wed, 22 Sep 1993 20:33:36 +0000 (20:33 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Wed, 22 Sep 1993 20:33:36 +0000 (20:33 +0000)
gdb/ChangeLog
gdb/mips-tdep.c

index 235330fd2577c206dd55c960ad023f6221b11989..46a4473de05af544984b27307c5c3ee89363255c 100644 (file)
@@ -3,8 +3,7 @@ Wed Sep 22 10:28:06 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
        * breakpoint.c (bpstat_what): Initialize retval.call_dummy and
        retval.step_resume.
 
-       * mips-tdep.c (mips_frame_chain): If PROC_FRAME_OFFSET is zero,
-       then return zero.
+       * mips-tdep.c (mips_frame_chain): If frame size zero, return zero.
 
        * remote-nindy.c: Declare ninMemGet and ninMemPut.
 
index 3ed7c4bd4ab60fdb2752c33ef439d22334b22214..590d1be61c258bb942d519aab774edbed3129758 100644 (file)
@@ -341,9 +341,12 @@ mips_frame_chain(frame)
       return 0;
 
     cached_proc_desc = proc_desc;
-    /* If frame size is zero, we must be at end of stack (or otherwise hosed).
-       If we don't check frame size, we loop forever if we see it == 0.  */
-    if (PROC_FRAME_OFFSET (proc_desc) == 0)
+
+    /* If no frame pointer and frame size is zero, we must be at end
+       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)
       return 0;
     else
       return read_next_frame_reg(frame, PROC_FRAME_REG(proc_desc))