delve/pkg
Derek Parker 6c77c35586
pkg/proc: add inline function support for stripped binaries (#3549)
This patch adds support for listing and setting breakpoints on inlined functions within stripped binaries. It uses a forked version of `debug/gosym` copied from golang.org/x/vuln/internal/vulncheck/internal/gosym which adds support for parsing the inline tree of the pclntab section. Parsing this section requires knowing the offset of the "go:func.*" symbol, which is not present in stripped binaries via the ``.symtab` section so instead, we search the `.noptrdata` section which contains `runtime.moduledatap` which contains the value of that missing symbol, which we then can use to find the inline tree for a given function.

Given all this we parse the inline tree for each function we find, and then add that information the the appropriate `Function` contained in `bi.Functions`, using a relatively empty `Function` struct as what would be the abstract origin.
2023-11-03 10:00:49 +01:00
..
astutil proc: when stepping set condition on thread ID if there is no curg (#3475) 2023-08-21 12:30:56 -07:00
config all: replace deprecated io/ioutil with io and os (#3509) 2023-09-25 11:41:59 -07:00
dwarf proc: use stack machine to evaluate expressions (#3508) 2023-10-17 11:21:59 -07:00
elfwriter terminal,service,proc/*: adds dump command (gcore equivalent) (#2173) 2021-01-29 13:39:33 -08:00
gobuild all: replace deprecated io/ioutil with io and os (#3509) 2023-09-25 11:41:59 -07:00
goversion goversion: parse new version format and simplify version representation (#3470) 2023-08-16 09:55:02 -07:00
internal pkg/proc: add inline function support for stripped binaries (#3549) 2023-11-03 10:00:49 +01:00
locspec locspec: fix SubstitutePath when converting a Windows path to Linux (#3453) 2023-08-14 15:34:29 -07:00
logflags all: replace deprecated io/ioutil with io and os (#3509) 2023-09-25 11:41:59 -07:00
proc pkg/proc: add inline function support for stripped binaries (#3549) 2023-11-03 10:00:49 +01:00
terminal proc: allow evaluator to reference previous frames (#3534) 2023-10-24 18:57:39 +02:00
version *: release 1.21.2 (#3546) 2023-10-31 10:15:52 -07:00