]> Zhao Yanbai Git Server - minix.git/commitdiff
. print kernel stacktrace unconditionally on panic
authorBen Gras <ben@minix3.org>
Thu, 11 Dec 2008 14:23:58 +0000 (14:23 +0000)
committerBen Gras <ben@minix3.org>
Thu, 11 Dec 2008 14:23:58 +0000 (14:23 +0000)
 . provide a panic() in the kernel for if a library function wants to panic

kernel/utility.c

index b7377b1cc9b5748dff46795e28ba699715fa6299..9998067dd13c94e69780a8fa7ef7f3059f6cb1b9 100755 (executable)
 #include <minix/sysutil.h>
 #include <minix/sys_config.h>
 
+/*===========================================================================*
+ *                     panic                                        *
+ *===========================================================================*/
+PUBLIC void panic(what, mess,nr)
+char *what;
+char *mess;
+int nr;
+{
+/* This function is for when a library call wants to panic.
+ * The library call calls printf() and tries to exit a process,
+ * which isn't applicable in the kernel.
+ */
+       minix_panic(mess, nr);
+}
+
 /*===========================================================================*
  *                     minix_panic                                        *
  *===========================================================================*/
@@ -29,10 +44,11 @@ int nr;
        if(nr != NO_NUM)
                kprintf(" %d", nr);
        kprintf("\n");
-       kprintf("kernel stacktrace: ");
-       util_stacktrace();
   }
 
+  kprintf("kernel stacktrace: ");
+  util_stacktrace();
+
   /* Abort MINIX. */
   minix_shutdown(NULL);
 }