我只是想知道是否有办法让我的应用程序只输出恐慌(并随后死亡)的例程的堆栈跟踪,而不是所有的goroutines,因为它们有很多。
我会假设有某种形式的旗帜,我可以通过它来运行或者去构建这样做,但似乎无法找到它。
感谢任何帮助。
答案 0 :(得分:0)
我可能会在延迟函数中使用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
}