f07562ebb4
Note that GDB at least implements single stepping for MIPS using software breakpoints explicitly rather than using PT_STEP, so this has only been tested via tests in ptrace_test which now pass rather than fail. - Fix several places to use uintptr_t instead of int for virtual addresses. - Check for errors from ptrace_read_int() when setting a breakpoint for a step. - Properly check for errors from ptrace_write_int() as it returns non-zero, not negative values on failure. - Change the error returns for ptrace_read_int() and ptrace_write_int() from ENOMEM to EFAULT. - Clear a single step breakpoint when it traps rather than waiting for it to be cleared from ptrace(). This matches the behavior of the arm port and in general seems a bit more reliable than waiting for ptrace() to clear it via FIX_SSTEP. - Drop the PROC_LOCK around ptrace_write_int() in ptrace_clear_single_step() since it can sleep. - Reorder the breakpoint handler in trap() to only read the instruction if the address matches the current thread's breakpoint address. - Replace various #if 0'd debugging printfs with KTR_PTRACE traces. Tested on: mips64 |
||
---|---|---|
.. | ||
_align.h | ||
_bus.h | ||
_inttypes.h | ||
_limits.h | ||
_stdint.h | ||
_types.h | ||
abi.h | ||
asm.h | ||
atomic.h | ||
bootinfo.h | ||
bus_dma.h | ||
bus.h | ||
cache_mipsNN.h | ||
cache_r4k.h | ||
cache.h | ||
cdefs.h | ||
clock.h | ||
counter.h | ||
cpu.h | ||
cpufunc.h | ||
cpuinfo.h | ||
cpuregs.h | ||
db_machdep.h | ||
dump.h | ||
efi.h | ||
elf.h | ||
endian.h | ||
exec.h | ||
fdt.h | ||
float.h | ||
floatingpoint.h | ||
fls64.h | ||
fpu.h | ||
frame.h | ||
gdb_machdep.h | ||
hwfunc.h | ||
ieee.h | ||
ieeefp.h | ||
in_cksum.h | ||
intr_machdep.h | ||
intr.h | ||
kdb.h | ||
limits.h | ||
locore.h | ||
md_var.h | ||
memdev.h | ||
metadata.h | ||
minidump.h | ||
mips_opcode.h | ||
octeon_cop2.h | ||
ofw_machdep.h | ||
param.h | ||
pcb.h | ||
pcpu.h | ||
pmap.h | ||
pmc_mdep.h | ||
proc.h | ||
profile.h | ||
pte.h | ||
ptrace.h | ||
reg.h | ||
regdef.h | ||
regnum.h | ||
reloc.h | ||
resource.h | ||
runq.h | ||
sc_machdep.h | ||
setjmp.h | ||
sf_buf.h | ||
sigframe.h | ||
signal.h | ||
smp.h | ||
stdarg.h | ||
sysarch.h | ||
tlb.h | ||
tls.h | ||
trap.h | ||
ucontext.h | ||
vdso.h | ||
vm.h | ||
vmparam.h |