
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.
1.2 KiB
1.2 KiB
Tests skipped by each supported backend:
- 386 skipped = 6
- 3 broken - cgo stacktraces
- 3 not implemented
- arm64 skipped = 1
- 1 broken - global variable symbolication
- darwin skipped = 3
- 2 follow exec not implemented on macOS
- 1 waitfor implementation is delegated to debugserver
- darwin/arm64 skipped = 2
- 2 broken - cgo stacktraces
- darwin/lldb skipped = 1
- 1 upstream issue
- freebsd skipped = 9
- 2 flaky
- 2 follow exec not implemented on freebsd
- 4 not implemented
- 1 not working on freebsd
- linux/386 skipped = 1
- 1 not working on linux/386
- linux/386/pie skipped = 1
- 1 broken
- linux/ppc64le skipped = 2
- 1 broken - cgo stacktraces
- 1 not working on linux/ppc64le when -gcflags=-N -l is passed
- linux/ppc64le/native skipped = 1
- 1 broken in linux ppc64le
- linux/ppc64le/native/pie skipped = 3
- 3 broken - pie mode
- pie skipped = 2
- 2 upstream issue - https://github.com/golang/go/issues/29322
- ppc64le skipped = 11
- 6 broken
- 1 broken - global variable symbolication
- 4 not implemented
- windows skipped = 5
- 1 broken
- 1 not working on windows
- 3 see https://github.com/go-delve/delve/issues/2768
- windows/arm64 skipped = 5
- 3 broken
- 1 broken - cgo stacktraces
- 1 broken - step concurrent