закешированный к нам в целях безопасности дебаггер
Go to file
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
_fixtures dwarf/line: Fixed DirIdx (index starts at one) (#1873) 2020-02-21 09:00:34 -08:00
assets Add high-res images 2015-05-19 12:25:26 -05:00
cmd/dlv dlv_test: add a basic test for dap command (#1899) 2020-02-28 09:48:59 -08:00
Documentation pkg,service: Optimized the display of examinemem command. (#1888) 2020-02-26 22:53:09 -08:00
pkg proc/native/linux: try to use process_vm_readv/writev 2020-02-29 08:25:31 -08:00
scripts scripts: support macOS 10.15 or later 2020-02-24 09:30:47 -08:00
service pkg,service: Optimized the display of examinemem command. (#1888) 2020-02-26 22:53:09 -08:00
vendor service/dap: Add panic guard to DAP handlers (#1895) 2020-02-25 21:00:54 -08:00
.cirrus.yml *: Add .cirrus.yml for FreeBSD testing (#1639) 2019-07-30 08:38:25 -07:00
.gitattributes makefile: use git's $Id$ instead of setting ver.Build in makefile (#807) 2017-04-28 10:14:33 -07:00
.gitignore git: Update gitignore 2015-10-20 20:55:11 -07:00
.travis.yml Revert "travis: exclude builds of Go other than most recent from ARM64 builds" 2019-12-10 07:55:57 -08:00
appveyor.yml *: Missed go-delve renames 2019-01-04 11:21:33 -08:00
CHANGELOG.md *: Update CHANGELOG.md - fix v1.4.0's date being 2019 (#1861) 2020-02-12 08:59:18 -08:00
CONTRIBUTING.md README: Remove gitter chat link. 2020-01-21 09:06:53 -08:00
go.mod service/dap: Add panic guard to DAP handlers (#1895) 2020-02-25 21:00:54 -08:00
go.sum service/dap: Add panic guard to DAP handlers (#1895) 2020-02-25 21:00:54 -08:00
ISSUE_TEMPLATE.md misc: Include issue template for GitHub 2016-03-03 10:40:14 -08:00
LICENSE Add License and README 2014-05-03 15:31:52 -05:00
Makefile *: Fix typo in Makefile (#1869) 2020-02-18 10:02:04 -08:00
README.md *: Update AppVeyor badge 2020-01-22 11:55:30 +01:00

Delve

license GoDoc Build Status Build status

The GitHub issue tracker is for bugs only. Please use the developer mailing list for any feature proposals and discussions.

About Delve

Delve is a debugger for the Go programming language. The goal of the project is to provide a simple, full featured debugging tool for Go. Delve should be easy to invoke and easy to use. Chances are if you're using a debugger, things aren't going your way. With that in mind, Delve should stay out of your way as much as possible.