HomeFreeBSD

Raise a proper SIGTRAP / TRAP_TRACE signal for a PT_STEP step on arm.

Description

Raise a proper SIGTRAP / TRAP_TRACE signal for a PT_STEP step on arm.

Previously, a step by PT_STEP resulted in no signal being raised to
the debugger so that a step was silently completed with the program
continuing to execute after the step. Fix by raising a SIGTRAP
signal with TRAP_TRACE as the signal code.

To simplify the error handling cases (if ptrace_clear_single_step()
fails, etc.) move the handling of PTRACE_BREAKPOINT into the
gdb_trapper() function. If ptrace_clear_single_step() fails,
gdb_trapper() won't claim the fault, and the default case of
SIGILL / ILL_OPC will be used.

Differential Revision: https://reviews.freebsd.org/D16100

Details

Provenance
jhbAuthored on
Differential Revision
D16100: Raise a proper SIGTRAP / TRAP_TRACE signal for a PT_STEP step on arm.
Parents
rS336721: release: Add OL_DIR forgot in r336600
Branches
Unknown
Tags
Unknown