gdbserver/Linux: Use TRAP_BRKPT/TRAP_HWBPT
authorPedro Alves <palves@redhat.com>
Wed, 4 Mar 2015 20:41:17 +0000 (20:41 +0000)
committerPedro Alves <palves@redhat.com>
Wed, 4 Mar 2015 20:41:17 +0000 (20:41 +0000)
commit3e572f71047489eb4f311b0fa15293a7ce83f871
tree4f6adeca1c767acf86f97c495def39ea45110443
parent1ec68e26c982a256df03d22dce072b88ab117a73
gdbserver/Linux: Use TRAP_BRKPT/TRAP_HWBPT

This patch adjusts gdbserver's Linux backend to tell gdbserver core
(and ultimately GDB) whether a trap was caused by a breakpoint.

It teaches the backend to get that information out of the si_code of
the SIGTRAP siginfo.

gdb/gdbserver/ChangeLog:
2015-03-04  Pedro Alves  <palves@redhat.com>

        * linux-low.c (check_stopped_by_breakpoint) [USE_SIGTRAP_SIGINFO]:
Decide whether a breakpoint triggered based on the SIGTRAP's
siginfo.si_code.
        (thread_still_has_status_pending_p) [USE_SIGTRAP_SIGINFO]: Don't check whether a
        breakpoint is inserted if relying on SIGTRAP's siginfo.si_code.
(linux_low_filter_event): Check for breakpoints before checking
watchpoints.
(linux_wait_1): Don't re-increment the PC if relying on SIGTRAP's
siginfo.si_code.
        (linux_stopped_by_sw_breakpoint)
        (linux_supports_stopped_by_sw_breakpoint)
        (linux_stopped_by_hw_breakpoint)
        (linux_supports_stopped_by_hw_breakpoint): New functions.
        (linux_target_ops): Install new target methods.
gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-low.c