From 0987c184a13d04d261df21b86f85843aa098b625 Mon Sep 17 00:00:00 2001 From: Andrew Turner Date: Sun, 23 Aug 2015 13:18:56 +0000 Subject: [PATCH] Handle the breakpoint instruction in userland by sending a SIGTRAP signal. --- sys/arm64/arm64/trap.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sys/arm64/arm64/trap.c b/sys/arm64/arm64/trap.c index 412dc98b91fb..58021514509f 100644 --- a/sys/arm64/arm64/trap.c +++ b/sys/arm64/arm64/trap.c @@ -327,6 +327,7 @@ el0_excp_unknown(struct trapframe *frame) void do_el0_sync(struct trapframe *frame) { + struct thread *td; uint32_t exception; uint64_t esr; @@ -368,6 +369,11 @@ do_el0_sync(struct trapframe *frame) case EXCP_UNKNOWN: el0_excp_unknown(frame); break; + case EXCP_BRK: + td = curthread; + call_trapsignal(td, SIGTRAP, TRAP_BRKPT, (void *)frame->tf_elr); + userret(td, frame); + break; default: print_registers(frame); panic("Unknown userland exception %x esr_el1 %lx\n", exception,