delve/pkg/proc
Luis Gabriel Gomez 69615b3604
service/dap: Support for replay and core modes (#2367)
This PR aims to add support for rr replay and core actions from the DAP layer. This basically encloses the following:
New launch modes: replay and core

The following modes are added:

    replay: Replays an rr trace, allowing backwards flows (reverse continue and stepback). Requires a traceDirPath property on launch.json pointing to a valid rr trace directory.
    Equivalent to dlv replay <tracedir> command.
    core: Replays a core dump file, showing its callstack and the file matching the callsite. Requires a coreFilePath property on launch.json pointing to a valid coredump file.
    Equivalent to dlv core <exe> <corefile> command.

Dependencies

To achieve this the following additional changes were made:

    Implement the onStepBackRequest and onReverseContinueRequest methods on service/dap
    Adapt onLaunchRequest with the requried validations and logic for these new modes
    Use CapabilitiesEvent responses to enable the StepBack controls on the supported scenarios (see dicussion here)
    Add the corresponding launch.json support on vs code: 

Support for replay and core modes golang/vscode-go#1268
2021-07-21 07:38:04 -07:00
..
amd64util proc/native: low level support for watchpoints in linux/amd64 (#2301) 2021-05-06 10:33:56 -07:00
core proc/core/minidump,proc/gdbserial: update broken ext links (#2570) 2021-07-06 09:28:53 -07:00
fbsdutil proc: remove duplicate Registers.Get implementations (#2415) 2021-04-28 10:00:26 -07:00
gdbserial service/dap: Support for replay and core modes (#2367) 2021-07-21 07:38:04 -07:00
linutil proc: remove duplicate Registers.Get implementations (#2415) 2021-04-28 10:00:26 -07:00
macutil proc/native,proc/gdbserial: detect and complain about Rosetta (#2569) 2021-07-06 08:53:39 -07:00
native proc/native,proc/gdbserial: detect and complain about Rosetta (#2569) 2021-07-06 08:53:39 -07:00
test pkg/proc: fix for file reference handling with DWARF 5 compilation units (#2327) 2021-01-29 09:23:52 -08:00
winutil proc: remove duplicate Registers.Get implementations (#2415) 2021-04-28 10:00:26 -07:00
amd64_arch.go proc: add way to use CPU registers in expressions (#2446) 2021-05-04 12:56:17 -07:00
amd64_disasm.go proc: remove duplicate Registers.Get implementations (#2415) 2021-04-28 10:00:26 -07:00
arch.go proc: add way to use CPU registers in expressions (#2446) 2021-05-04 12:56:17 -07:00
arm64_arch.go proc: add way to use CPU registers in expressions (#2446) 2021-05-04 12:56:17 -07:00
arm64_disasm.go proc: remove duplicate Registers.Get implementations (#2415) 2021-04-28 10:00:26 -07:00
bininfo.go Go 1.17 support branch (#2451) 2021-07-08 08:47:53 -07:00
breakpoints.go Go 1.17 support branch (#2451) 2021-07-08 08:47:53 -07:00
disasm.go proc: remove duplicate Registers.Get implementations (#2415) 2021-04-28 10:00:26 -07:00
doc.go Move top-level packages into pkg 2017-02-08 12:17:19 -08:00
dump.go terminal,service,proc/*: adds dump command (gcore equivalent) (#2173) 2021-01-29 13:39:33 -08:00
dwarf_export_test.go proc: give unique addresses to registerized variables (#2527) 2021-07-02 18:37:55 +02:00
dwarf_expr_test.go dwarf/op,proc: fix handling of DW_OP_piece (#2485) 2021-05-17 10:26:49 -07:00
eval.go pkg/proc: fix bug where frame parameter is ignored if no goroutine (#2563) 2021-07-03 15:48:35 +02:00
fncall.go Go 1.17 support branch (#2451) 2021-07-08 08:47:53 -07:00
goroutine_cache.go proc/*,service: replace uses of uintptr with uint64 (#2163) 2020-09-09 10:36:15 -07:00
i386_arch.go proc: add way to use CPU registers in expressions (#2446) 2021-05-04 12:56:17 -07:00
i386_disasm.go proc: remove duplicate Registers.Get implementations (#2415) 2021-04-28 10:00:26 -07:00
interface.go proc,terminal: Ensure correct exit status (#2543) 2021-06-22 13:35:13 +02:00
mem.go proc: give unique addresses to registerized variables (#2527) 2021-07-02 18:37:55 +02:00
moduledata.go proc/*,service: replace uses of uintptr with uint64 (#2163) 2020-09-09 10:36:15 -07:00
pe.go proc: fix typo 'unkown' => 'unknown' (#2473) 2021-05-10 11:36:03 -07:00
proc_general_test.go Go 1.17 support branch (#2451) 2021-07-08 08:47:53 -07:00
proc_linux_test.go proc/*: add launch option to disable ASLR (#2202) 2020-10-21 12:50:52 -07:00
proc_test.go Go 1.17 support branch (#2451) 2021-07-08 08:47:53 -07:00
proc_unexported_test.go proc: correctly truncate the result of binary ops on integers (#2463) 2021-05-17 10:31:05 -07:00
proc_unix_test.go proc/native/linux: better handling of process death due to signals (#2477) 2021-05-17 09:48:48 -07:00
registers.go proc: remove duplicate Registers.Get implementations (#2415) 2021-04-28 10:00:26 -07:00
scope_test.go proc: give unique addresses to registerized variables (#2527) 2021-07-02 18:37:55 +02:00
stack.go Go 1.17 support branch (#2451) 2021-07-08 08:47:53 -07:00
target_exec.go Go 1.17 support branch (#2451) 2021-07-08 08:47:53 -07:00
target.go Go 1.17 support branch (#2451) 2021-07-08 08:47:53 -07:00
threads.go proc/*: implement proc.(*compositeMemory).WriteMemory (#2271) 2021-03-04 10:28:28 -08:00
types.go proc: fix runtimeTypeToDIE setup (#2486) 2021-05-19 10:42:10 -07:00
variable_test.go pkg/proc: Move proc exec funcs to Target methods 2020-03-25 17:45:12 +01:00
variables.go Go 1.17 support branch (#2451) 2021-07-08 08:47:53 -07:00
x86_disasm.go proc: remove duplicate Registers.Get implementations (#2415) 2021-04-28 10:00:26 -07:00