]> Cypherpunks repositories - gostls13.git/commit
runtime: fail silently if we unwind over sigpanic into C code
authorAustin Clements <austin@google.com>
Tue, 30 Jan 2018 21:03:51 +0000 (16:03 -0500)
committerAustin Clements <austin@google.com>
Wed, 31 Jan 2018 02:13:21 +0000 (02:13 +0000)
commitebe38b867c869108ecf06b7d2e3664bb9d996275
treee7e4fcc901e17668d7588e8ad0c2f12609c41d78
parent5c2be42a687492d2538489de69c50d66fd3dadee
runtime: fail silently if we unwind over sigpanic into C code

If we're running C code and the code panics, the runtime will inject a
call to sigpanic into the C code just like it would into Go code.
However, the return PC from this sigpanic will be in C code. We used
to silently abort the traceback if we didn't recognize a return PC, so
this went by quietly. Now we're much louder because in general this is
a bad thing. However, in this one particular case, it's fine, so if
we're in cgo and are looking at the return PC of sigpanic, silence the
debug output.

Fixes #23576.

Change-Id: I03d0c14d4e4d25b29b1f5804f5e9ccc4f742f876
Reviewed-on: https://go-review.googlesource.com/90896
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/runtime/crash_cgo_test.go
src/runtime/testdata/testprogcgo/sigpanic.go [new file with mode: 0644]
src/runtime/traceback.go