gpt4 book ai didi

go - 封闭函数结束时 goroutine 的堆栈跟踪

转载 作者:IT王子 更新时间:2023-10-29 02:11:45 26 4
gpt4 key购买 nike

给定:

func main() {
timeout := time.NewTimer(n)
go longRunningFn()
<-timeout.C
}

main 超时时,是否有可能获得 longRunningFn 的堆栈跟踪?

最佳答案

是的,您可以使用 runtime.Stack打印所有 goroutines 的堆栈:

Stack formats a stack trace of the calling goroutine into buf and returns the number of bytes written to buf. If all is true, Stack formats stack traces of all other goroutines into buf after the trace for the current goroutine.

简单的 GoPlay 在这里:
https://play.golang.org/p/sB-ynAVwmU

看起来您还可以通过结合使用 debug.PrintStack 和运行时库来打印出特定 goroutine 的堆栈。来自另一个 S.O. 的信用在这里回答:How to dump goroutine stacktraces?

关于go - 封闭函数结束时 goroutine 的堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44552057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com