出于跟踪目的,我想打印出当前函数名称,例如__FUNCTION__gcc 中的宏。所以当我有一个功能时func foo () { trace()}它会自动打印出来Entering foo()...或类似的东西。
3 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
包运行时是您的朋友:
func trace() {
pc := make([]uintptr, 10) // at least 1 entry needed
runtime.Callers(2, pc)
f := runtime.FuncForPC(pc[0])
file, line := f.FileLine(pc[0])
fmt.Printf("%s:%d %s\n", file, line, f.Name())
}
- 3 回答
- 0 关注
- 181 浏览
添加回答
举报
0/150
提交
取消