我正在嘗試調試泄漏的 goroutines(使用 Gomega 的gleak)。當單元測試結束時,一些 goroutines“頑固地”堅持不終止,gleak轉儲罪魁禍首及其堆棧跟蹤。這些堆棧跟蹤中的一些調用在其參數或返回值中甚至包含幾個問號,例如:foo.(*Fooler).Foo(0x40003efa40, {0xeeb638?, 0x40005bc580}, {0x400013a000?, 0x6, 0xd9c3a4?}) at foo.go對應的接收函數簽名如下:func (f *Fooler) Foo(context.Context, []string)我檢查了幾篇關于“解釋 golang 堆棧跟蹤”的帖子/文章/問題,尤其是如何解釋 Go stacktrace,但沒有在 Go 堆棧跟蹤中發現任何問號。我發現解釋的示例從未提及任何有問題的(?)調用參數或返回值。那么堆棧跟蹤中出現問號的原因是什么?這可能與寄存器中傳遞的參數有關,并且無法正確恢復堆棧跟蹤嗎?
go stack trace:在某些函數調用參數或返回值之后的問號(?)是什么意思?
波斯汪
2022-12-19 10:33:48