我想为 Golang 创建一个 EBPF 程序,记录输入和返回函数的时间。
我有一些问题:
- A. 函数是内联的。
- B. 闭包是匿名的。
- C. 阅读 Golang 结构。
问题:
一个。
在我的情况下,它不可能阻止函数内联go build -gcflags '-l
.
如果我可以在二进制文件中识别内联函数的指令,我可以在它上面放置一个探针(而不是“在函数 X 上放置探针”,我可以告诉 EBPF “在指令 X 处放置探针”吗?)。
B.
我可以对匿名闭包做同样的事情吗?
C。
如何在 EBPF C 程序中读取 Golang 结构?
我想提取属于结构层次结构的标量值。我可以找到所有将标量而不是结构作为参数的探测函数的示例。
有关的
- 无法使用密件抄送工具将 eBPF `kretprobes` 附加到 `napi_poll()`
- http://www.brendangregg.com/blog/2017-01-31/golang-bcc-bpf-function-tracing.html
谢谢。