Index: head/sys/ddb/db_command.c =================================================================== --- head/sys/ddb/db_command.c +++ head/sys/ddb/db_command.c @@ -556,7 +556,7 @@ if (s) db_printf("%s", s); db_flush_lex(); - kdb_reenter(); + kdb_reenter_silent(); } static void Index: head/sys/kern/subr_kdb.c =================================================================== --- head/sys/kern/subr_kdb.c +++ head/sys/kern/subr_kdb.c @@ -509,6 +509,17 @@ /* NOTREACHED */ } +void +kdb_reenter_silent(void) +{ + + if (!kdb_active || kdb_jmpbufp == NULL) + return; + + longjmp(kdb_jmpbufp, 1); + /* NOTREACHED */ +} + /* * Thread related support functions. */ Index: head/sys/sys/kdb.h =================================================================== --- head/sys/sys/kdb.h +++ head/sys/sys/kdb.h @@ -80,6 +80,7 @@ void kdb_panic(const char *); void kdb_reboot(void); void kdb_reenter(void); +void kdb_reenter_silent(void); struct pcb *kdb_thr_ctx(struct thread *); struct thread *kdb_thr_first(void); struct thread *kdb_thr_from_pid(pid_t);