PERFORCE change 51720 for review
Marcel Moolenaar
marcel at FreeBSD.org
Sun Apr 25 11:45:22 PDT 2004
http://perforce.freebsd.org/chv.cgi?CH=51720
Change 51720 by marcel at marcel_sledge on 2004/04/25 11:44:19
MFi386.
Affected files ...
.. //depot/projects/gdb/sys/amd64/amd64/trap.c#7 edit
Differences ...
==== //depot/projects/gdb/sys/amd64/amd64/trap.c#7 (text+ko) ====
@@ -46,7 +46,6 @@
#include "opt_clock.h"
#include "opt_cpu.h"
-#include "opt_ddb.h"
#include "opt_isa.h"
#include "opt_ktrace.h"
@@ -56,6 +55,7 @@
#include <sys/proc.h>
#include <sys/pioctl.h>
#include <sys/ptrace.h>
+#include <sys/kdb.h>
#include <sys/kernel.h>
#include <sys/ktr.h>
#include <sys/lock.h>
@@ -88,8 +88,6 @@
#endif
#include <machine/tss.h>
-#include <ddb/ddb.h>
-
extern void trap(struct trapframe frame);
extern void syscall(struct trapframe frame);
@@ -130,10 +128,10 @@
"machine check trap", /* 28 T_MCHK */
};
-#ifdef DDB
-static int ddb_on_nmi = 1;
-SYSCTL_INT(_machdep, OID_AUTO, ddb_on_nmi, CTLFLAG_RW,
- &ddb_on_nmi, 0, "Go to DDB on NMI");
+#ifdef KDB
+static int kdb_on_nmi = 1;
+SYSCTL_INT(_machdep, OID_AUTO, kdb_on_nmi, CTLFLAG_RW,
+ &kdb_on_nmi, 0, "Go to KDB on NMI");
#endif
static int panic_on_nmi = 1;
SYSCTL_INT(_machdep, OID_AUTO, panic_on_nmi, CTLFLAG_RW,
@@ -167,15 +165,15 @@
atomic_add_int(&cnt.v_trap, 1);
type = frame.tf_trapno;
-#ifdef DDB
- if (db_active) {
- vm_offset_t eva;
- eva = (type == T_PAGEFLT ? frame.tf_addr : 0);
- trap_fatal(&frame, eva);
+#ifdef KDB
+ if (kdb_active && type == T_PAGEFLT) {
+ kdb_trap(type, 0, &frame);
goto out;
}
#endif
+ td->td_last_frame = &frame;
+
if ((frame.tf_rflags & PSL_I) == 0) {
/*
* Buggy application or kernel code has disabled
@@ -288,7 +286,7 @@
* NMI can be hooked up to a pushbutton
* for debugging.
*/
- if (ddb_on_nmi) {
+ if (kdb_on_nmi) {
printf ("NMI ... going to debugger\n");
kdb_trap (type, 0, &frame);
}
@@ -419,12 +417,12 @@
*/
case T_BPTFLT:
/*
- * If DDB is enabled, let it handle the debugger trap.
+ * If KDB is enabled, let it handle the debugger trap.
* Otherwise, debugger traps "can't happen".
*/
#ifdef KDB
/* XXX Giant */
- if (kdb_trap (type, 0, &frame))
+ if (kdb_trap(type, 0, &frame))
goto out;
#endif
break;
@@ -439,9 +437,9 @@
* NMI can be hooked up to a pushbutton
* for debugging.
*/
- if (ddb_on_nmi) {
+ if (kdb_on_nmi) {
printf ("NMI ... going to debugger\n");
- kdb_trap (type, 0, &frame);
+ kdb_trap(type, 0, &frame);
}
#endif /* KDB */
goto out;
@@ -630,7 +628,7 @@
}
#ifdef KDB
- if ((debugger_on_panic || db_active) && kdb_trap(type, 0, frame))
+ if (kdb_trap(type, 0, frame))
return;
#endif
printf("trap number = %d\n", type);
@@ -699,6 +697,7 @@
regcnt = 6;
sticks = td->td_sticks;
td->td_frame = &frame;
+ td->td_last_frame = &frame;
if (td->td_ucred != p->p_ucred)
cred_update_thread(td);
if (p->p_flag & P_SA)
More information about the p4-projects
mailing list