aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Jones <thj@FreeBSD.org>2022-04-12 09:30:22 +0000
committerTom Jones <thj@FreeBSD.org>2022-04-12 09:34:40 +0000
commit1ea833a57290e04a5dfa8eebd6d4fa28204a807b (patch)
tree2e7b4017a4ef0d6131ba6ccf85a064c341f5bc90
parent742e7210d00b359d81b9c778ab520003704e9b6c (diff)
downloadsrc-1ea833a57290e04a5dfa8eebd6d4fa28204a807b.tar.gz
src-1ea833a57290e04a5dfa8eebd6d4fa28204a807b.zip
kdb: set kdb_why when entered via reboot and panic
Reviewed by: jhb Sponsored by: NetApp, Inc. Sponsored by: Klara, Inc. X-NetApp-PR: #74 Differential Revision: https://reviews.freebsd.org/D34551
-rw-r--r--sys/kern/subr_kdb.c4
-rw-r--r--sys/sys/kdb.h1
2 files changed, 4 insertions, 1 deletions
diff --git a/sys/kern/subr_kdb.c b/sys/kern/subr_kdb.c
index b189fe303e0f..6aa8bd17e048 100644
--- a/sys/kern/subr_kdb.c
+++ b/sys/kern/subr_kdb.c
@@ -292,6 +292,7 @@ void
kdb_panic(const char *msg)
{
+ kdb_why = KDB_WHY_PANIC;
printf("KDB: panic\n");
panic("%s", msg);
}
@@ -300,6 +301,7 @@ void
kdb_reboot(void)
{
+ kdb_why = KDB_WHY_REBOOT;
printf("KDB: reboot requested\n");
shutdown_nice(0);
}
@@ -498,9 +500,9 @@ kdb_enter(const char *why, const char *msg)
{
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
index 746abb0ee4f4..4669a3f9f551 100644
--- a/sys/sys/kdb.h
+++ b/sys/sys/kdb.h
@@ -121,6 +121,7 @@ extern const char * volatile kdb_why;
#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 */