Changeset View
Changeset View
Standalone View
Standalone View
sys/arm64/arm64/gdb_machdep.c
Show All 35 Lines | |||||
#include <sys/signal.h> | #include <sys/signal.h> | ||||
#include <machine/armreg.h> | #include <machine/armreg.h> | ||||
#include <machine/frame.h> | #include <machine/frame.h> | ||||
#include <machine/gdb_machdep.h> | #include <machine/gdb_machdep.h> | ||||
#include <machine/pcb.h> | #include <machine/pcb.h> | ||||
#include <gdb/gdb.h> | #include <gdb/gdb.h> | ||||
#include <gdb/gdb_int.h> | |||||
void * | void * | ||||
gdb_cpu_getreg(int regnum, size_t *regsz) | gdb_cpu_getreg(int regnum, size_t *regsz) | ||||
{ | { | ||||
*regsz = gdb_cpu_regsz(regnum); | *regsz = gdb_cpu_regsz(regnum); | ||||
if (kdb_thread == curthread) { | if (kdb_thread == curthread) { | ||||
▲ Show 20 Lines • Show All 52 Lines • ▼ Show 20 Lines | gdb_cpu_signal(int type, int code __unused) | ||||
switch (type) { | switch (type) { | ||||
case EXCP_WATCHPT_EL1: | case EXCP_WATCHPT_EL1: | ||||
case EXCP_SOFTSTP_EL1: | case EXCP_SOFTSTP_EL1: | ||||
case EXCP_BRK: | case EXCP_BRK: | ||||
return (SIGTRAP); | return (SIGTRAP); | ||||
} | } | ||||
return (SIGEMT); | return (SIGEMT); | ||||
} | |||||
void | |||||
gdb_cpu_stop_reason(int type, int code __unused) | |||||
{ | |||||
if (type == EXCP_WATCHPT_EL1) { | |||||
gdb_tx_str("watch:"); | |||||
gdb_tx_varhex((uintmax_t)READ_SPECIALREG(far_el1)); | |||||
gdb_tx_char(';'); | |||||
} | |||||
} | } |