我正在寻找一种在golang中记录回溯堆栈的方法,但只有其中的一些行。正如我所看到的,它可以通过将从 debug.Stack() 获得的结果拆分为一个结构切片来完成,然后可以轻松地对其进行解析。
这就是我现在通过调用“fmt.Println(string(debug.Stack()))”得到的结果:
goroutine 1 [running]:
runtime/debug.Stack(0xc0000c0050, 0x2, 0x0)
/go/go1.15rc1/src/runtime/debug/stack.go:24 +0x9f
main.go_logger(0x4cc235, 0x11, 0x4ccf9d, 0x15, 0xc000090101)
/go/src/ethernet_monitor/info.go:30 +0x290
main.temp(...)
/go/src/ethernet_monitor/info.go:40
main.main()
/go/src/ethernet_monitor/info.go:45 +0x52
这就是我希望它被拆分的方式,类似于 python 的 traceback.extract_stack() 结构:
fileName: /go/src/ethernet_monitor/info.go
function: main.main()
lineNumber: 45
所以问题是 - 它是否已经以某种方式实施了?我对编写自己的解析函数不是很有信心,因为我可能会错过一些特定的案例。
SMILET
相关分类