Detect SW breakpoints in Cell/B.E. combined debugging
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Thu, 27 Aug 2015 17:20:29 +0000 (19:20 +0200)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Thu, 27 Aug 2015 17:26:31 +0000 (19:26 +0200)
commit1db33b5a028820d1eb656bffff727090a5504253
tree001b6d43cec72c816c611940b6b6344c1a1d8f8b
parente0fd7c47bd01e0a6eecf5dec4a4be958f8b3bbc8
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/ChangeLog
gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-low.c
gdb/linux-nat.c
gdb/nat/linux-ptrace.h