aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/amd64/amd64/trap.c2
-rw-r--r--sys/ddb/ddb.h1
-rw-r--r--sys/i386/i386/trap.c2
-rw-r--r--sys/powerpc/aim/trap.c2
-rw-r--r--sys/powerpc/powerpc/trap.c2
-rw-r--r--sys/sys/kdb.h1
6 files changed, 3 insertions, 7 deletions
diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c
index 493363346000..7baaeee08b93 100644
--- a/sys/amd64/amd64/trap.c
+++ b/sys/amd64/amd64/trap.c
@@ -623,7 +623,7 @@ trap_fatal(frame, eva)
}
#ifdef KDB
- if (kdb_trap(type, 0, frame))
+ if ((debugger_on_panic || kdb_active) && kdb_trap(type, 0, frame))
return;
#endif
printf("trap number = %d\n", type);
diff --git a/sys/ddb/ddb.h b/sys/ddb/ddb.h
index ba667052b303..3264fffb8214 100644
--- a/sys/ddb/ddb.h
+++ b/sys/ddb/ddb.h
@@ -71,7 +71,6 @@ extern db_expr_t db_maxoff;
extern int db_indent;
extern int db_inst_count;
extern int db_load_count;
-extern int debugger_on_panic;
extern int db_store_count;
extern db_expr_t db_radix;
extern db_expr_t db_max_width;
diff --git a/sys/i386/i386/trap.c b/sys/i386/i386/trap.c
index a75ecec4a4ce..ae2b4ed21394 100644
--- a/sys/i386/i386/trap.c
+++ b/sys/i386/i386/trap.c
@@ -798,7 +798,7 @@ trap_fatal(frame, eva)
}
#ifdef KDB
- if (kdb_trap(type, 0, frame))
+ if ((debugger_on_panic || kdb_active) && kdb_trap(type, 0, frame))
return;
#endif
printf("trap number = %d\n", type);
diff --git a/sys/powerpc/aim/trap.c b/sys/powerpc/aim/trap.c
index a19cacc3cc00..669bb60b939d 100644
--- a/sys/powerpc/aim/trap.c
+++ b/sys/powerpc/aim/trap.c
@@ -93,8 +93,6 @@ int badaddr_read(void *, size_t, int *);
extern char *syscallnames[];
-extern int debugger_on_panic; /* XXX */
-
struct powerpc_exception {
u_int vector;
char *name;
diff --git a/sys/powerpc/powerpc/trap.c b/sys/powerpc/powerpc/trap.c
index a19cacc3cc00..669bb60b939d 100644
--- a/sys/powerpc/powerpc/trap.c
+++ b/sys/powerpc/powerpc/trap.c
@@ -93,8 +93,6 @@ int badaddr_read(void *, size_t, int *);
extern char *syscallnames[];
-extern int debugger_on_panic; /* XXX */
-
struct powerpc_exception {
u_int vector;
char *name;
diff --git a/sys/sys/kdb.h b/sys/sys/kdb.h
index 55d70333385b..ece16fc5aff8 100644
--- a/sys/sys/kdb.h
+++ b/sys/sys/kdb.h
@@ -57,6 +57,7 @@ struct thread;
struct trapframe;
extern int kdb_active; /* Non-zero while in debugger. */
+extern int debugger_on_panic; /* enter the debugger on panic. */
extern struct kdb_dbbe *kdb_dbbe; /* Default debugger backend or NULL. */
extern struct trapframe *kdb_frame; /* Frame to kdb_trap(). */
extern struct pcb *kdb_thrctx; /* Current context. */