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