aboutsummaryrefslogtreecommitdiff
path: root/sys/mips
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2018-04-24 05:33:17 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2018-04-24 05:33:17 +0000
commit93fc184b8255c851997cbac5a8d594b8c1830813 (patch)
tree9346d032c2e38466cdf28d9202443852f678590c /sys/mips
parent643ce7de725843e64761cce24d365fda796a15f7 (diff)
downloadsrc-93fc184b8255c851997cbac5a8d594b8c1830813.tar.gz
src-93fc184b8255c851997cbac5a8d594b8c1830813.zip
Report proper signal codes for SIGTRAP traps on MIPS.
- Use TRAP_TRACE for traps after stepping via PT_STEP. - Use TRAP_BRKPT for software breakpoint traps and watchpoint traps. This was tested via the recently added siginfo ptrace() tests. PT_STEP on MIPS has several bugs that prevent it from working yet, but this does fix the ptrace__breakpoint_siginfo test on MIPS.
Notes
Notes: svn path=/head/; revision=332909
Diffstat (limited to 'sys/mips')
-rw-r--r--sys/mips/mips/trap.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/mips/mips/trap.c b/sys/mips/mips/trap.c
index 0938cf2f06da..492134073ea3 100644
--- a/sys/mips/mips/trap.c
+++ b/sys/mips/mips/trap.c
@@ -840,6 +840,7 @@ dofault:
if (td->td_md.md_ss_addr != va ||
instr != MIPS_BREAK_SSTEP) {
i = SIGTRAP;
+ ucode = TRAP_BRKPT;
addr = trapframe->pc;
break;
}
@@ -851,6 +852,7 @@ dofault:
*/
addr = trapframe->pc;
i = SIGTRAP;
+ ucode = TRAP_TRACE;
break;
}
@@ -865,6 +867,7 @@ dofault:
va += sizeof(int);
printf("watch exception @ %p\n", (void *)va);
i = SIGTRAP;
+ ucode = TRAP_BRKPT;
addr = va;
break;
}