
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.
45 lines
1.2 KiB
Markdown
45 lines
1.2 KiB
Markdown
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
|