To catch a SIGSEGV in code running in C, you need to install a signal
handler on the C side. The Go signal handler can't generate a panic,
because it doesn't know how to unwind the C stack. If you install a C
signal handler before the Go code starts, such as by using a global
constructor, then the right thing should happen, at least when using
Go 1.6.
Ian