Changeset View
Changeset View
Standalone View
Standalone View
sys/arm64/arm64/trap.c
Show First 20 Lines • Show All 311 Lines • ▼ Show 20 Lines | #endif | ||||
CTR4(KTR_TRAP, | CTR4(KTR_TRAP, | ||||
"do_el1_sync: curthread: %p, esr %lx, elr: %lx, frame: %p", td, | "do_el1_sync: curthread: %p, esr %lx, elr: %lx, frame: %p", td, | ||||
esr, frame->tf_elr, frame); | esr, frame->tf_elr, frame); | ||||
oframe = td->td_frame; | oframe = td->td_frame; | ||||
switch (exception) { | switch (exception) { | ||||
case EXCP_BRK: | case EXCP_BRK: | ||||
case EXCP_BRKPT_EL1: | |||||
case EXCP_WATCHPT_EL1: | case EXCP_WATCHPT_EL1: | ||||
case EXCP_SOFTSTP_EL1: | case EXCP_SOFTSTP_EL1: | ||||
break; | break; | ||||
default: | default: | ||||
td->td_frame = frame; | td->td_frame = frame; | ||||
break; | break; | ||||
} | } | ||||
Show All 34 Lines | |||||
#ifdef KDB | #ifdef KDB | ||||
kdb_trap(exception, 0, | kdb_trap(exception, 0, | ||||
(td->td_frame != NULL) ? td->td_frame : frame); | (td->td_frame != NULL) ? td->td_frame : frame); | ||||
#else | #else | ||||
panic("No debugger in kernel.\n"); | panic("No debugger in kernel.\n"); | ||||
#endif | #endif | ||||
frame->tf_elr += 4; | frame->tf_elr += 4; | ||||
break; | break; | ||||
case EXCP_BRKPT_EL1: | |||||
case EXCP_WATCHPT_EL1: | case EXCP_WATCHPT_EL1: | ||||
case EXCP_SOFTSTP_EL1: | case EXCP_SOFTSTP_EL1: | ||||
#ifdef KDB | #ifdef KDB | ||||
kdb_trap(exception, 0, | kdb_trap(exception, 0, | ||||
(td->td_frame != NULL) ? td->td_frame : frame); | (td->td_frame != NULL) ? td->td_frame : frame); | ||||
#else | #else | ||||
panic("No debugger in kernel.\n"); | panic("No debugger in kernel.\n"); | ||||
#endif | #endif | ||||
▲ Show 20 Lines • Show All 154 Lines • Show Last 20 Lines |