From 4b8f747b9d31b546cf59fac10878f1104e57f25e Mon Sep 17 00:00:00 2001 From: Andrew Turner Date: Mon, 7 Feb 2022 11:47:04 +0000 Subject: [PATCH] Fix the signal code on 32-bit breakpoints on arm64 When debugging 32-bit programs a debugger may insert a instruction that will raise the undefined instruction trap. The kernel handles these by raising a SIGTRAP, however the code was incorrect. Fix this by using the expected TRAP_BRKPT signal code. Sponsored by: The FreeBSD Foundation (cherry picked from commit 67dc576bae6e624ae46962ad187e0e31fece6688) --- sys/arm64/arm64/undefined.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/arm64/arm64/undefined.c b/sys/arm64/arm64/undefined.c index 2cdb5f9a97f..1feb242db06 100644 --- a/sys/arm64/arm64/undefined.c +++ b/sys/arm64/arm64/undefined.c @@ -105,7 +105,7 @@ gdb_trapper(vm_offset_t va, uint32_t insn, struct trapframe *frame, ksiginfo_init_trap(&ksi); ksi.ksi_signo = SIGTRAP; - ksi.ksi_code = TRAP_TRACE; + ksi.ksi_code = TRAP_BRKPT; ksi.ksi_addr = (void *)va; trapsignal(td, &ksi); return 1; -- 2.45.2