delve/pkg
Josh Stone d0d2d47885 proc/native/linux: try to use process_vm_readv/writev
This change adds `ProcessVmRead` and `ProcessVmWrite` wrappers around
the syscalls `process_vm_readv` and `process_vm_writev`, available since
Linux 3.2. These follow the same permission model as `ptrace`, but they
don't actually require being attached, which means they can be called
directly from any thread in the debugger. They also use `iovec` to write
entire blocks at once, rather than having to peek/poke each `uintptr`.

These wrappers are used in `Thread.ReadMemory` and `WriteMemory`, still
falling back to `ptrace` if that fails for any reason.  Notably,
`process_vm_writev` respects memory protection, so it can't modify
read-only memory like `ptrace`. This frequently occurs when writing
breakpoints in read-only `.text`, so to avoid a lot of wasted `EFAULT`
calls, we only try `process_vm_writev` for larger writes.
2020-02-29 08:25:31 -08:00
..
config pkg/config: add max-variable-recurse parameter (#1626) 2019-07-23 14:40:35 -07:00
dwarf dwarf/line: fix TestDebugLinePrologueParser test for Go 1.14 (#1891) 2020-02-26 20:38:31 -08:00
goversion *: Go 1.14 support branch (#1727) 2020-02-10 17:31:54 -08:00
logflags pkg/logflags: Display warning when unknown component for --log-output (#1897) 2020-02-28 09:50:22 -08:00
proc proc/native/linux: try to use process_vm_readv/writev 2020-02-29 08:25:31 -08:00
terminal pkg,service: Optimized the display of examinemem command. (#1888) 2020-02-26 22:53:09 -08:00
version all: bump version number and release notes 2020-02-11 11:38:41 +01:00