* breakpoint.c, breakpoint.h (breakpoint_init_inferior): New function
[deliverable/binutils-gdb.git] / gdb / mips-tdep.c
index 590d1be61c258bb942d519aab774edbed3129758..82371aaecc3ffe68ccc286134ce345c6710c78ee 100644 (file)
@@ -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))
@@ -921,7 +927,7 @@ mips_store_return_value (valtype, valbuf)
   write_register_bytes(REGISTER_BYTE (regnum), raw_buffer, TYPE_LENGTH (valtype));
 }
 
-static void reinit_frame_cache_sfunc PARAMS ((char *, int
+static void reinit_frame_cache_sfunc PARAMS ((char *, int,
                                              struct cmd_list_element *));
 
 /* Just like reinit_frame_cache, but with the right arguments to be
This page took 0.023005 seconds and 4 git commands to generate.