. print kernel stacktrace unconditionally on panic
. provide a panic() in the kernel for if a library function wants to panic
This commit is contained in:
parent
b61687fb1b
commit
9d096e014b
1 changed files with 18 additions and 2 deletions
|
@ -14,6 +14,21 @@
|
||||||
#include <minix/sysutil.h>
|
#include <minix/sysutil.h>
|
||||||
#include <minix/sys_config.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 *
|
* minix_panic *
|
||||||
*===========================================================================*/
|
*===========================================================================*/
|
||||||
|
@ -29,10 +44,11 @@ int nr;
|
||||||
if(nr != NO_NUM)
|
if(nr != NO_NUM)
|
||||||
kprintf(" %d", nr);
|
kprintf(" %d", nr);
|
||||||
kprintf("\n");
|
kprintf("\n");
|
||||||
kprintf("kernel stacktrace: ");
|
|
||||||
util_stacktrace();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kprintf("kernel stacktrace: ");
|
||||||
|
util_stacktrace();
|
||||||
|
|
||||||
/* Abort MINIX. */
|
/* Abort MINIX. */
|
||||||
minix_shutdown(NULL);
|
minix_shutdown(NULL);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue