aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Turner <andrew@FreeBSD.org>2022-02-07 11:47:04 +0000
committerAndrew Turner <andrew@FreeBSD.org>2022-02-07 11:56:04 +0000
commit67dc576bae6e624ae46962ad187e0e31fece6688 (patch)
treecb9e68c5af7624f6c00f7d263332b7f515ccf208
parenta9696510f5caef4a7c525fcf4359597798829350 (diff)
downloadsrc-67dc576bae6e624ae46962ad187e0e31fece6688.tar.gz
src-67dc576bae6e624ae46962ad187e0e31fece6688.zip
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
-rw-r--r--sys/arm64/arm64/undefined.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/arm64/arm64/undefined.c b/sys/arm64/arm64/undefined.c
index 2cdb5f9a97fb..1feb242db060 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;