Changeset View
Changeset View
Standalone View
Standalone View
head/sys/i386/i386/trap.c
Show First 20 Lines • Show All 971 Lines • ▼ Show 20 Lines | if (frame->tf_eflags & PSL_RF) | ||||
printf("resume, "); | printf("resume, "); | ||||
if (frame->tf_eflags & PSL_VM) | if (frame->tf_eflags & PSL_VM) | ||||
printf("vm86, "); | printf("vm86, "); | ||||
printf("IOPL = %d\n", (frame->tf_eflags & PSL_IOPL) >> 12); | printf("IOPL = %d\n", (frame->tf_eflags & PSL_IOPL) >> 12); | ||||
printf("current process = %d (%s)\n", | printf("current process = %d (%s)\n", | ||||
curproc->p_pid, curthread->td_name); | curproc->p_pid, curthread->td_name); | ||||
#ifdef KDB | #ifdef KDB | ||||
if (debugger_on_panic) { | if (debugger_on_trap) { | ||||
kdb_why = KDB_WHY_TRAP; | kdb_why = KDB_WHY_TRAP; | ||||
frame->tf_err = eva; /* smuggle fault address to ddb */ | frame->tf_err = eva; /* smuggle fault address to ddb */ | ||||
handled = kdb_trap(type, 0, frame); | handled = kdb_trap(type, 0, frame); | ||||
frame->tf_err = code; /* restore error code */ | frame->tf_err = code; /* restore error code */ | ||||
kdb_why = KDB_WHY_UNSET; | kdb_why = KDB_WHY_UNSET; | ||||
if (handled) | if (handled) | ||||
return; | return; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 180 Lines • Show Last 20 Lines |