-
Notifications
You must be signed in to change notification settings - Fork 18.8k
Description
In go1.7rc1, there's an extra line of output in each block of comments in debug=1 profiles. It has address 0x0, and does not include a function name. It seems to correspond to the runtime.goexit frame. I don't know that this is hurting anything (the data lines seem to be valid and unchanged, it's just a difference in the comments), though I also don't know the extent to which tools in the wild make use of those comment lines.
- What version of Go are you using (
go version)?
I see this behavior in go1.7rc1, and not in go1.6.2.
- What operating system and processor architecture are you using (
go env)?
linux/amd64
- What did you do?
I visually scanned a /debug/pprof/goroutine?debug=1 profile.
- What did you expect to see?
I'd expect each non-comment profile line to end with an address in runtime.goexit. I'd expect to not see an associated line in the following comments.
- What did you see instead?
The goroutine profile has each stack starting at an address in runtime.goexit. In go1.6.2, this stack frame doesn't get an associated comment in debug=1 profiles. In go1.7rc1, it gets a comment for the frame, showing address 0x0 and no associated symbol name.
go1.6.2:
6 @ 0x439737 0x4490c9 0x4485fc 0x5e1c6b 0x46d681
# 0x5e1c6b net/http.(*persistConn).writeLoop+0x49b /usr/local/go/src/net/http/transport.go:1277
and from go tool objdump:
TEXT runtime.goexit(SB) /usr/local/go/src/runtime/asm_amd64.s
asm_amd64.s:1998 0x46d680 90 NOPL
asm_amd64.s:1999 0x46d681 e8fa1efdff CALL runtime.goexit1(SB)
asm_amd64.s:2001 0x46d686 90 NOPL
go1.7rc1:
4 @ 0x43316a 0x442685 0x44148c 0x59211d 0x463b81
# 0x59211c net/http.(*persistConn).writeLoop+0x3bc /usr/local/go/src/net/http/transport.go:1594
# 0x0
and from go tool objdump:
TEXT runtime.goexit(SB) /usr/local/go/src/runtime/asm_amd64.s
asm_amd64.s:2086 0x463b80 90 NOPL
asm_amd64.s:2087 0x463b81 e8ca4dfdff CALL runtime.goexit1(SB)
asm_amd64.s:2089 0x463b86 90 NOPL