我想知道,是否有一种方法可以让我的go应用程序仅输出发生panic(随后死机)的例程的堆栈跟踪,而不是所有的goroutine,因为它们很多。
我认为可以通过传递某种标志给go run或go build来实现这一点,但似乎找不到相应的内容。
任何帮助都将不胜感激。
我认为可以通过传递某种标志给go run或go build来实现这一点,但似乎找不到相应的内容。
任何帮助都将不胜感激。
我建议(未经测试)在延迟函数中使用runtime.Stack,同时修改(用于调试目的)您现有的代码以进行调试:
const debug = true //TODO turn off for production
func MyPotentiallyPanickingGoroutine() {
if debug {
buf := make([]byte, 1<<16)
defer func() {
fmt.Printf("%s\n", runtime.Stack(buf, false))
}()
}
// existing code follows
}