delve/Documentation
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
..
api proc,service: remove support for locspec '<fnname>:0' (#1588) 2019-06-25 13:50:05 -07:00
cli proc/gdbserial,debugger: allow clients to stop a recording (#1890) 2020-03-24 09:09:28 -07:00
installation Update install.md 2019-10-30 09:38:21 +01:00
internal Documentation: better documentation menu, add guide to writing a client 2018-07-02 09:35:27 -07:00
usage service/dap: Initial implementation for 'dlv dap' (#1858) 2020-02-15 11:52:53 -08:00
EditorIntegration.md documentation: update idea plugin url (#1562) 2019-05-30 08:03:16 -07:00
faq.md cmd/dlv: add --continue to continue process on launch/attach (#1585) 2019-07-19 10:59:38 -07:00
KnownBugs.md proc,terminal: Implement reverse step, next and stepout (#1785) 2020-03-11 15:40:41 -07:00
README.md documentation: add gdlv to list of alternative UIs (#774) 2017-03-24 16:10:01 -07:00

Delve Documentation

Documentation for the project will reside in this directory.