• Russ Cox's avatar
    runtime: record goroutine creation pc and display in traceback · 324cc3d0
    Russ Cox authored
    package main
    
    func main() {
            go func() { *(*int)(nil) = 0 }()
            select{}
    }
    
    panic: runtime error: invalid memory address or nil pointer dereference
    
    [signal 0xb code=0x1 addr=0x0 pc=0x1c96]
    
    runtime.panic+0xac /Users/rsc/g/go/src/pkg/runtime/proc.c:1083
            runtime.panic(0x11bf0, 0xf8400011f0)
    runtime.panicstring+0xa3 /Users/rsc/g/go/src/pkg/runtime/runtime.c:116
            runtime.panicstring(0x29a57, 0x0)
    runtime.sigpanic+0x144 /Users/rsc/g/go/src/pkg/runtime/darwin/thread.c:470
            runtime.sigpanic()
    main._func_001+0x16 /Users/rsc/g/go/src/pkg/runtime/x.go:188
            main._func_001()
    runtime.goexit /Users/rsc/g/go/src/pkg/runtime/proc.c:150
            runtime.goexit()
    ----- goroutine created by -----
    main.main+0x3d /Users/rsc/g/go/src/pkg/runtime/x.go:4
    
    goroutine 1 [4]:
    runtime.gosched+0x77 /Users/rsc/g/go/src/pkg/runtime/proc.c:598
            runtime.gosched()
    runtime.block+0x27 /Users/rsc/g/go/src/pkg/runtime/chan.c:680
            runtime.block()
    main.main+0x44 /Users/rsc/g/go/src/pkg/runtime/x.go:5
            main.main()
    runtime.mainstart+0xf /Users/rsc/g/go/src/pkg/runtime/amd64/asm.s:77
            runtime.mainstart()
    runtime.goexit /Users/rsc/g/go/src/pkg/runtime/proc.c:150
            runtime.goexit()
    ----- goroutine created by -----
    _rt0_amd64+0x8e /Users/rsc/g/go/src/pkg/runtime/amd64/asm.s:64
    
    Fixes #1563.
    
    R=r
    CC=golang-dev
    https://golang.org/cl/4243046
    324cc3d0
mgc0.c 22.2 KB