Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Golang stack trace details

Tags:

stack

trace

go

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

like image 878
Radosław Cymer Avatar asked Mar 17 '17 11:03

Radosław Cymer


1 Answers

It's the difference between the stack frame PC and the function entry PC.
thanks to JimB
like image 168
Radosław Cymer Avatar answered Nov 01 '22 01:11

Radosław Cymer