dongnao2048 2017-03-17 11:37
浏览 385
已采纳

Golang堆栈跟踪详细信息

I was hoping someone could explain to me one small detail of Golang's stack trace, that was mostly disregarded by tutorials I've read. Example of a stack trace I got:


    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
    ...
    ...
    ...

So I'm really curious about what is the meaning of +0x12a, +0x243, +0x38 after the number of a line in code where error occurred.

Thanks, R.C.

P.S.: the panic was caused by a null pointer to func GetJson(*http.Response, interface{}) error

  • 写回答

1条回答 默认 最新

  • dooso0594 2017-03-17 14:10
    关注

    It's the difference between the stack frame PC and the function entry PC.
    thanks to JimB
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?