From 1db33b5a028820d1eb656bffff727090a5504253 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Thu, 27 Aug 2015 19:20:29 +0200 Subject: Detect SW breakpoints in Cell/B.E. combined debugging The Linux target and gdbserver now check the siginfo si_code reported on a SIGTRAP to detect whether the trap indicates a software breakpoint was hit. Unfortunately, on Cell/B.E., the kernel uses an si_code value of TRAP_BRKPT when a SW breakpoint was hit in PowerPC code, but a si_code value of SI_KERNEL when a SW breakpoint was hit in SPU code. This patch updates Linux target and gdbserver to accept both si_code values to indicate SW breakpoint on PowerPC. ChangeLog: * nat/linux-ptrace.h (GDB_ARCH_TRAP_BRKPT): Replace by ... (GDB_ARCH_IS_TRAP_BRKPT): ... this. Add __powerpc__ case. * linux-nat.c (check_stopped_by_breakpoint): Use GDB_ARCH_IS_TRAP_BRKPT instead of GDB_ARCH_TRAP_BRKPT. gdbserver/ChangeLog: * linux-low.c (check_stopped_by_breakpoint): Use GDB_ARCH_IS_TRAP_BRKPT instead of GDB_ARCH_TRAP_BRKPT. --- gdb/linux-nat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gdb/linux-nat.c') diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 4da361d..51541d5 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -2801,7 +2801,7 @@ check_stopped_by_breakpoint (struct lwp_info *lp) { if (siginfo.si_signo == SIGTRAP) { - if (siginfo.si_code == GDB_ARCH_TRAP_BRKPT) + if (GDB_ARCH_IS_TRAP_BRKPT (siginfo.si_code)) { if (debug_linux_nat) fprintf_unfiltered (gdb_stdlog, -- cgit v1.1