закешированный к нам в целях безопасности дебаггер
Go to file
Alessandro Arzilli 8bb93e9ae1
proc/gdbserial,debugger: allow clients to stop a recording (#1890)
Allows Delve clients to stop a recording midway by sending a
Command('halt')
request.

This is implemented by changing debugger.New to start recording the
process on a separate goroutine while holding the processMutex locked.
By locking the processMutex we ensure that almost all RPC requests will
block until the recording is done, since we can not respond correctly
to any of them.
API calls that do not require manipulating or examining the target
process, such as "IsMulticlient", "SetApiVersion" and
"GetState(nowait=true)" will work while we are recording the process.

Two other internal changes are made to the API: both GetState and
Restart become asynchronous requests, like Command. Restart because
this way it can be interrupted by a StopRecording request if the
rerecord option is passed.
GetState because clients need a call that will block until the
recording is compelted and can also be interrupted with a
StopRecording.

Clients that are uninterested in allowing the user to stop a recording
can ignore this change, since eventually they will make a request to
Delve that will block until the recording is completed.

Clients that wish to support this feature must:

1. call GetState(nowait=false) after connecting to Delve, before any
   call that would need to manipulate the target process
2. allow the user to send a StopRecording request during the initial
   GetState call
3. allow the user to send a StopRecording request during any subsequent
   Restart(rerecord=true) request (if supported).

Implements #1747
2020-03-24 09:09:28 -07:00
_fixtures pkg/proc,service: support linux/386 (#1884) 2020-03-10 09:34:40 -07:00
assets Add high-res images 2015-05-19 12:25:26 -05:00
cmd/dlv *: Fix use of deprecated functionality 2020-03-20 09:05:14 +01:00
Documentation proc/gdbserial,debugger: allow clients to stop a recording (#1890) 2020-03-24 09:09:28 -07:00
pkg proc/gdbserial,debugger: allow clients to stop a recording (#1890) 2020-03-24 09:09:28 -07:00
scripts proc/gdbserial,debugger: allow clients to stop a recording (#1890) 2020-03-24 09:09:28 -07:00
service proc/gdbserial,debugger: allow clients to stop a recording (#1890) 2020-03-24 09:09:28 -07:00
vendor proc,dwarf: cache debug.Entry objects (#1931) 2020-03-20 10:23:10 -07:00
.cirrus.yml *: Transfer 32-bit test into travis from cirrus (#1932) 2020-03-16 09:37:33 -07:00
.deepsource.toml *: Ignore scripts in deepsource analysis 2020-03-20 09:04:29 +01: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 travis.yml: Add go_import_path 2020-03-22 20:43:57 +01: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 proc,dwarf: cache debug.Entry objects (#1931) 2020-03-20 10:23:10 -07:00
go.sum pkg/proc: Clean up proc.go 2020-03-24 09:45:29 +01: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 go vet complaints (#1935) 2020-03-18 09:25:32 -07: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.