delve/pkg/proc
Alessandro Arzilli 025d47c6e9
proc: adds pointer pinning to call injection (#3787)
This commit adds a new mode to call injection. If the runtime.debugPinner
function is available in the target executable it obtains a pinner by
calling it and then uses it to pin the pointers in the results of call
injection.

This allows the code for call injection to be refactored to execute the
calls in the normal order, since it doesn't need to be concerned with having
space on the target's memory to store intermediate values.

Updates #3310
2024-10-04 10:44:57 -07:00
..
amd64util *: replace fmt.Errorf with errors.New (#3752) 2024-06-20 21:50:18 +02:00
core pkg/proc: fix 404 links and change to https (#3775) 2024-07-11 08:03:32 -07:00
debuginfod debuginfod-find stderr may contain diagnostics; look at stdout only for filename (#3381) 2023-05-23 11:11:51 -07:00
evalop proc: adds pointer pinning to call injection (#3787) 2024-10-04 10:44:57 -07:00
fbsdutil pkg/proc: fix and improve freebsd register handling (#3019) 2022-05-31 16:04:36 -07:00
gdbserial pkg/proc: simplify tests by using errors.As (#3818) 2024-10-01 08:54:11 -07:00
internal/ebpf *: Correct spelling mistakes (#3555) 2023-11-06 07:55:44 -06:00
linutil pkg/proc: fix 404 links and change to https (#3775) 2024-07-11 08:03:32 -07:00
macutil all: remove obsolete build tags "// +build" (#3513) 2023-10-03 08:50:11 -07:00
native *: replace old golang.org links with new go.dev (#3774) 2024-07-12 12:12:44 -07:00
test *: remove checks for TRAVIS env variable (#3568) 2023-11-16 10:42:41 -08:00
winutil pkg,service: remove unnecessary convertions (#3564) 2023-11-14 16:36:55 +01:00
amd64_arch.go proc: simplify and generalize runtime.mallocgc workaround (#3571) 2023-11-20 10:43:15 -08:00
amd64_disasm.go pkg/proc: apply simplifycompositelit analysis fixes (#3236) 2023-01-03 08:13:28 -08:00
arch.go proc: simplify and generalize runtime.mallocgc workaround (#3571) 2023-11-20 10:43:15 -08:00
arm64_arch.go proc: simplify and generalize runtime.mallocgc workaround (#3571) 2023-11-20 10:43:15 -08:00
arm64_disasm.go pkg,service: remove unnecessary convertions (#3564) 2023-11-14 16:36:55 +01:00
bininfo.go proc: adds pointer pinning to call injection (#3787) 2024-10-04 10:44:57 -07:00
breakpoints.go proc: fix step stuttering when entering range-over-func bodies (#3788) 2024-08-10 21:15:26 -07:00
disasm.go pkg,service: remove unnecessary convertions (#3564) 2023-11-14 16:36:55 +01:00
doc.go *: run go1.19 'go fmt' on everything and fix problems (#3031) 2022-06-17 10:08:11 -07:00
dump.go pkg: refactor to buf.WriteString() (#3769) 2024-07-11 08:06:51 -07:00
dwarf_export_test.go proc: adds pointer pinning to call injection (#3787) 2024-10-04 10:44:57 -07:00
dwarf_expr_test.go *: remove redundant lines at the start/end of block (#3730) 2024-05-20 14:16:22 -07:00
eval.go proc: adds pointer pinning to call injection (#3787) 2024-10-04 10:44:57 -07:00
fncall.go proc: adds pointer pinning to call injection (#3787) 2024-10-04 10:44:57 -07:00
goroutine_cache.go pkg/proc: enable basic debug functionality for stripped ELF binaries (#3408) 2023-06-14 13:23:46 +02:00
i386_arch.go proc: fix stacktraces on freebsd/amd64/go1.20 (#3458) 2023-08-14 15:32:15 -07:00
i386_disasm.go dwarf,proc: fix typos in comments and error messages (#3379) 2023-05-23 18:22:20 +02:00
interface.go proc/gdbserver: clean up rr directory on detach (#3570) 2024-01-24 09:21:20 -08:00
mem.go proc: adds pointer pinning to call injection (#3787) 2024-10-04 10:44:57 -07:00
moduledata.go refactor: move loadModuleData from runtimeTypeToDIE and expose the apis (#3741) 2024-06-25 08:03:28 -07:00
pclntab.go *: replace fmt.Errorf with errors.New (#3752) 2024-06-20 21:50:18 +02:00
pe.go proc: fix typo 'unkown' => 'unknown' (#2473) 2021-05-10 11:36:03 -07:00
ppc64le_arch.go proc: simplify and generalize runtime.mallocgc workaround (#3571) 2023-11-20 10:43:15 -08:00
ppc64le_disasm.go *: update dependencies (#3552) 2023-11-04 17:07:55 +01:00
proc_amd64_test.go pkg/terminal,pkg/proc: Implement next-instruction (#3671) 2024-02-28 09:28:33 +01:00
proc_darwin_amd64_test.go pkg/terminal,pkg/proc: Implement next-instruction (#3671) 2024-02-28 09:28:33 +01:00
proc_darwin_test.go pkg/proc: unskip passing tests and reorganize (#3561) 2023-11-12 12:01:21 +01:00
proc_general_test.go fix: mem cache out of range panic caused by overflow (#3761) 2024-06-30 21:34:35 -07:00
proc_linux_test.go TeamCity: speed up ppc64le CI (#3622) 2024-01-09 14:13:00 -08:00
proc_test.go pkg/proc: simplify tests by using errors.As (#3818) 2024-10-01 08:54:11 -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 all: remove obsolete build tags "// +build" (#3513) 2023-10-03 08:50:11 -07:00
redirect.go pkg/proc,service/*: Supports sending output to clients when running programs remotely (#3253) 2023-07-05 08:39:01 -07:00
redirector_other.go all: remove obsolete build tags "// +build" (#3513) 2023-10-03 08:50:11 -07:00
redirector_windows.go pkg,service: Remove redundant build constraints (#3556) 2023-11-06 16:22:50 +01:00
registers.go proc: support function call injection on arm64 (#2996) 2022-05-03 10:46:24 -07:00
scope_test.go pkg/proc: simplify tests by using errors.As (#3818) 2024-10-01 08:54:11 -07:00
stack_sigtramp.go proc: initial support for expressions with range-over-func (#3750) 2024-06-24 13:04:06 -07:00
stack.go proc: for optimized functions allow .closureptr to not exist (#3808) 2024-09-18 14:16:34 -07:00
stackwatch.go proc: fix bug with stack watchpoints going out of scope (#3742) 2024-06-12 12:37:04 -07:00
stepping_test.go proc: step into coroutine (#3791) 2024-09-24 10:22:04 -07:00
target_exec.go proc: adds pointer pinning to call injection (#3787) 2024-10-04 10:44:57 -07:00
target_group.go proc/gdbserver: clean up rr directory on detach (#3570) 2024-01-24 09:21:20 -08:00
target.go proc: cache module data (#3800) 2024-09-18 14:17:07 -07:00
threads.go proc: move StepInstruction method to TargetGroup (#3488) 2023-09-20 09:17:45 +02:00
types.go proc: adds pointer pinning to call injection (#3787) 2024-10-04 10:44:57 -07:00
variable_test.go *: remove redundant lines at the start/end of block (#3730) 2024-05-20 14:16:22 -07:00
variables_fuzz_test.go proc: use stack machine to evaluate expressions (#3508) 2023-10-17 11:21:59 -07:00
variables_test.go proc: adds pointer pinning to call injection (#3787) 2024-10-04 10:44:57 -07:00
variables.go proc: adds pointer pinning to call injection (#3787) 2024-10-04 10:44:57 -07:00
x86_disasm.go proc: remove duplicate Registers.Get implementations (#2415) 2021-04-28 10:00:26 -07:00