堆栈跟踪中指定的时间是什么意思?

What does time specified in a stack trace mean?

我正在读取用于调试的 go 程序的堆栈跟踪。

goroutine 6 [chan receive]:
go.elastic.co/apm.(*Tracer).loop.func2(0xc000042420, 0xc0000423c0, 0x1551980, 0xc0004da100, 0xc000074300, 0xc000001080, 0xc00000e018)
    /app/vendor/go.elastic.co/apm/tracer.go:803 +0x21a
created by go.elastic.co/apm.(*Tracer).loop
    /app/vendor/go.elastic.co/apm/tracer.go:800 +0x36e

goroutine 8 [chan receive, 21 minutes]:
github.com/getsentry/sentry-go.(*HTTPTransport).worker(0xc0003025b0)
    /app/vendor/github.com/getsentry/sentry-go/transport.go:387 +0x77
created by github.com/getsentry/sentry-go.(*HTTPTransport).Configure.func1
    /app/vendor/github.com/getsentry/sentry-go/transport.go:255 +0x3e

第二个go例程中的时间21 minutes是什么意思?这次没有第一​​次。我在文档中查找但找不到这个时间是干什么用的。

这是 goroutine 被阻塞的大概时间。仅当 goroutine 被阻塞的时间至少为 1 分钟时才会显示。

你可以在 go runtime source 中查看产生这个输出的代码,runtime/traceback.go(链接是 go1.16.6 版本的代码)。