diff --git a/sys/kern/subr_kdb.c b/sys/kern/subr_kdb.c --- a/sys/kern/subr_kdb.c +++ b/sys/kern/subr_kdb.c @@ -292,6 +292,7 @@ kdb_panic(const char *msg) { + kdb_why = KDB_WHY_PANIC; printf("KDB: panic\n"); panic("%s", msg); } @@ -300,6 +301,7 @@ kdb_reboot(void) { + kdb_why = KDB_WHY_REBOOT; printf("KDB: reboot requested\n"); shutdown_nice(0); } @@ -498,9 +500,9 @@ { if (kdb_dbbe != NULL && kdb_active == 0) { + kdb_why = why; if (msg != NULL) printf("KDB: enter: %s\n", msg); - kdb_why = why; breakpoint(); kdb_why = KDB_WHY_UNSET; } diff --git a/sys/sys/kdb.h b/sys/sys/kdb.h --- a/sys/sys/kdb.h +++ b/sys/sys/kdb.h @@ -121,6 +121,7 @@ #define KDB_WHY_POWERPC "powerpc" /* Unhandled powerpc intr. */ #define KDB_WHY_UNIONFS "unionfs" /* Unionfs bug. */ #define KDB_WHY_DTRACE "dtrace" /* DTrace action entered debugger. */ +#define KDB_WHY_REBOOT "reboot" /* reboot was requested. */ /* Return values for kdb_alt_break */ #define KDB_REQ_DEBUGGER 1 /* User requested Debugger */