我只是想知道是否有办法让我的go应用程序只输出恐慌(随后死亡)的例程的堆栈跟踪,而不是我的所有goroutine,因为它们有很多。
我假设有某种形式的标志,我可以通过它来运行或构建,但似乎找不到它
感谢您的帮助。
我可能会尝试(而不是测试)使用运行时。在修改(用于调试目的)现有代码以用于调试目的时,在延迟函数中堆叠:
const debug = true //TODO turn off for production
func MyPotentiallyPanickingGoroutine() {
if debug {
buf := make([]byte, 1<<16)
defer func() {
fmt.Printf("%sn", runtime.Stack(buf, false))
}()
}
// existing code follows
}