delve/pkg/proc
Michael Knyszek 041eedd126
pkg/proc: merge register data before writing to register (#2699)
Right now, if (*compositeMemory).WriteMemory needs to write a value to
a register that's smaller than the full size of the register (say, a
uint32 being passed as an argument), then (*AMD64Registers).SetReg can
later fail a sanity check that ensures the passed DwarfRegister is a
full size register.

Fix this by reading the old value of the register and overwriting just
the relevant parts with the new register. For the purposes of an
argument, it would probably be fine to just pad with zeroes, but merging
with the existing value is what gdb does.

Fixes #2698
2021-09-24 15:27:44 -07:00
..
amd64util proc/native: low level support for watchpoints in linux/amd64 (#2301) 2021-05-06 10:33:56 -07:00
core pkg/proc: Parse Goroutine ID in eBPF tracer (#2654) 2021-08-24 14:53:27 +02:00
fbsdutil proc: remove duplicate Registers.Get implementations (#2415) 2021-04-28 10:00:26 -07:00
gdbserial pkg/proc: Parse Goroutine ID in eBPF tracer (#2654) 2021-08-24 14:53:27 +02:00
internal/ebpf pkg/proc: Parse Goroutine ID in eBPF tracer (#2654) 2021-08-24 14:53:27 +02: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: support watchpoints on Windows (#2651) 2021-09-24 15:17:46 -07:00
test tests: correctly check for 1.17 + regabi (#2673) 2021-08-24 08:21:17 -07:00
winutil proc: remove duplicate Registers.Get implementations (#2415) 2021-04-28 10:00:26 -07:00
amd64_arch.go pkg/proc: Prefer throw instead of fatalthrow (#2616) 2021-07-27 23:58:02 -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 pkg/proc: Prefer throw instead of fatalthrow (#2616) 2021-07-27 23:58:02 -07:00
arm64_disasm.go proc: remove duplicate Registers.Get implementations (#2415) 2021-04-28 10:00:26 -07:00
bininfo.go pkg/proc: attempt to leverage debuginfod-find (#2670) 2021-08-25 13:29:28 +02:00
breakpoints.go service/dap: add basic log points (#2634) 2021-09-24 15:22:32 -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 pkg/proc: merge register data before writing to register (#2699) 2021-09-24 15:27:44 -07:00
eval.go proc: move breakpoint condition evaluation out of backends (#2628) 2021-08-09 10:16:24 -07:00
fncall.go dwarf/op,proc: implement more DWARF expression opcodes (#2606) 2021-08-03 09:51:15 -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 pkg/proc: Prefer throw instead of fatalthrow (#2616) 2021-07-27 23:58:02 -07:00
i386_disasm.go proc: remove duplicate Registers.Get implementations (#2415) 2021-04-28 10:00:26 -07:00
interface.go pkg/proc: Parse Goroutine ID in eBPF tracer (#2654) 2021-08-24 14:53:27 +02:00
mem.go pkg/proc: merge register data before writing to register (#2699) 2021-09-24 15:27:44 -07:00
moduledata.go _scripts: auto check that pkg/proc and runtime are synchronized (#2557) 2021-08-23 11:32:02 -07:00
pe.go proc: fix typo 'unkown' => 'unknown' (#2473) 2021-05-10 11:36:03 -07:00
proc_general_test.go tests: correctly check for 1.17 + regabi (#2673) 2021-08-24 08:21:17 -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 proc/native: support watchpoints on Windows (#2651) 2021-09-24 15:17:46 -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 tests: fix TestIssue419 (#2682) 2021-08-31 10:44:57 -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 _scripts: auto check that pkg/proc and runtime are synchronized (#2557) 2021-08-23 11:32:02 -07:00
stackwatch.go proc,terminal,service: support stack watchpoints (#2521) 2021-08-09 10:41:25 -07:00
target_exec.go pkg/proc: configure target to not clear stepping breakpoints (#2635) 2021-08-09 10:56:20 -07:00
target.go pkg/proc: Parse Goroutine ID in eBPF tracer (#2654) 2021-08-24 14:53:27 +02:00
threads.go proc/*: implement proc.(*compositeMemory).WriteMemory (#2271) 2021-03-04 10:28:28 -08:00
types.go _scripts: auto check that pkg/proc and runtime are synchronized (#2557) 2021-08-23 11:32:02 -07:00
variable_test.go pkg/proc: Move proc exec funcs to Target methods 2020-03-25 17:45:12 +01:00
variables.go pkg/proc: update check for system goroutine (#2585) 2021-09-13 14:42:21 -07:00
x86_disasm.go proc: remove duplicate Registers.Get implementations (#2415) 2021-04-28 10:00:26 -07:00