1
我希望有人能向我解釋Golang的堆棧跟蹤的一個小細節,這大部分都被我讀過的教程忽略了。堆棧跟蹤的 例子我:Golang堆棧跟蹤詳細信息
goroutine 6 [running]: net/http.(*conn).serve.func1(0xc42005ad00) /usr/local/go/src/net/http/server.go:1491 +0x12a panic(0x8079e0, 0xc42000c0c0) /usr/local/go/src/runtime/panic.go:458 +0x243 usos-shop-back/usosapi.GetJson(0x0, 0x7d7820, 0xc4202f6d00, 0x0, 0x0) /root/go/src/usos-shop-back/usosapi/usos-hackery.go:20 +0x38 ... ... ...
所以我真的很好奇什麼是+0x12a
,+0x243
,+0x38
的代碼行,其中發生錯誤的次數後的含義。
謝謝, R.C.
P.S:恐慌是由空指針引起func GetJson(*http.Response, interface{}) error
這是堆棧幀PC和功能登錄PC之間的區別。 (實現特定的堆棧跟蹤格式可能不是StackOverflow的一個好問題) – JimB
@JimB,謝謝,我已經閱讀了一些wiki文章。不過,我想知道爲什麼SO不是一個好問題?它會導致火焰戰爭嗎?還有其他一些XYZexchange嗎? –
本主題更多的是灰色地帶,主要是因爲實現細節可能不適用於所有常用實現,可能會更改,有時會相當快地更改,導致問題或答案過時和/或誤導。並不是說go1的堆棧跟蹤格式可能會改變,但是例如其他GODEBUG輸出在版本之間發生了顯着變化,因爲它需要反映實現。 – JimB