就像这篇文章介绍的,打印 main 函数的调用链路,最终结果如下:
g[01]: ->main.A1
g[01]: ->main.B1
g[01]: ->main.C1
g[01]: ->main.D
目前知道有go-callvis,但是它是基于静态代码分析的,所以得到的结果会很杂乱。而上面说的那种方法,需要用代码生成工具给每个函数插入一行 defer 代码。有没有非侵入式的办法?个人感觉用 ebpf 是可以实现的。
就像这篇文章介绍的,打印 main 函数的调用链路,最终结果如下:
g[01]: ->main.A1
g[01]: ->main.B1
g[01]: ->main.C1
g[01]: ->main.D
目前知道有go-callvis,但是它是基于静态代码分析的,所以得到的结果会很杂乱。而上面说的那种方法,需要用代码生成工具给每个函数插入一行 defer 代码。有没有非侵入式的办法?个人感觉用 ebpf 是可以实现的。