delve/pkg/proc
aarzilli 9a216211d3 proc,terminal,service: let headless instances run without connected clients
This pull request makes several changes to delve to allow headless
instancess that are started with the --accept-multiclient flag to
keep running even if there is no connected client. Specifically:

1. Makes a headless instance started with --accept-multiclient quit
    after one of the clients sends a Detach request (previously they
    would never ever quit, which was a bug).
2. Changes proc/gdbserial and proc/native so that they mark the
    Process as exited after they detach, even if they did not kill the
    process during detach. This prevents bugs such as #1231 where we
    attempt to manipulate a target process after we detached from it.
3. On non --accept-multiclient instances do not kill the target
    process unless we started it or the client specifically requests
    it (previously if the client did not Detach before closing the
    connection we would kill the target process unconditionally)
4. Add a -c option to the quit command that detaches from the
    headless server after restarting the target.
5. Change terminal so that, when attached to --accept-multiclient,
    pressing ^C will prompt the user to either disconnect from the
    server or pause the target process. Also extend the exit prompt to
    ask if the user wants to keep the headless server running.

Implements #245, #952, #1159, #1231
2018-06-26 10:32:40 -07:00
..
core proc,terminal,service: let headless instances run without connected clients 2018-06-26 10:32:40 -07:00
gdbserial proc,terminal,service: let headless instances run without connected clients 2018-06-26 10:32:40 -07:00
native proc,terminal,service: let headless instances run without connected clients 2018-06-26 10:32:40 -07:00
test proc,command: fix optimized function warning in 1.9 2018-06-20 07:56:32 -07:00
arch.go proc: handle new way of panic'ing in 1.11 2018-06-11 11:09:02 -07:00
bininfo.go proc: support GNU compressed debug sections (go1.11 support) 2018-06-22 11:20:38 -07:00
breakpoints.go proc,service: display return values when stepping out of a function 2018-06-12 11:35:56 +02:00
disasm_amd64.go proc,dwarf/line: support is_stmt and prologue_end flags 2018-06-11 11:09:02 -07:00
disasm.go proc,terminal,service: let headless instances run without connected clients 2018-06-26 10:32:40 -07:00
doc.go Move top-level packages into pkg 2017-02-08 12:17:19 -08:00
dwarf_expr_test.go proc: support inlining 2018-03-26 14:30:38 -04:00
eval.go proc: allow "package/path".varname syntax 2018-06-14 09:29:23 -07:00
interface.go proc,terminal,service: let headless instances run without connected clients 2018-06-26 10:32:40 -07:00
mem.go proc: change memCache to delay reading 2018-04-23 10:13:21 -07:00
moduledata.go proc: use new extended attribute to resolve concrete type of interfaces 2018-06-11 11:09:02 -07:00
proc_general_test.go proc: change memCache to delay reading 2018-04-23 10:13:21 -07:00
proc_test.go proc,terminal,service: let headless instances run without connected clients 2018-06-26 10:32:40 -07:00
proc_unix_test.go proc: remove proc.Process.Kill 2018-03-06 09:06:19 -08:00
proc.go proc,terminal,service: let headless instances run without connected clients 2018-06-26 10:32:40 -07:00
registers_amd64.go pkg/proc, pkg/dwarf/op: support DW_OP_piece, DW_OP_regX, DW_OP_fbreg 2017-11-21 11:51:02 -08:00
registers.go proc: refactor stack.go to use DWARF registers 2017-11-17 10:17:24 -08:00
scope_test.go proc: support inlining 2018-03-26 14:30:38 -04:00
stack.go proc: handle new way of panic'ing in 1.11 2018-06-11 11:09:02 -07:00
threads.go proc,service: display return values when stepping out of a function 2018-06-12 11:35:56 +02:00
types.go *: Use structured logging 2018-06-22 09:45:10 +02:00
variable_test.go Extend the "frame" command to set the current frame. (#1110) 2018-03-22 10:02:15 -07:00
variables.go proc: in go1.11 runtime.g.waitreason is not a string 2018-06-11 11:09:02 -07:00