]> Cypherpunks repositories - gostls13.git/commit
runtime: print signal name in panic, if name is known
authorEmmanuel Odeke <emm.odeke@gmail.com>
Wed, 4 May 2016 07:42:13 +0000 (01:42 -0600)
committerIan Lance Taylor <iant@golang.org>
Thu, 5 May 2016 19:58:00 +0000 (19:58 +0000)
commit1a7fc2357b1c26dcdf4fa57dee67a1172696801f
tree00a0bc08765e9fa1b47792fe1aa50ab502a19ceb
parentfafd792de30f46cbd822fd6bb041c60c7b5fbe6d
runtime: print signal name in panic, if name is known

Adds a small function signame that infers a signal name
from the signal table, otherwise will fallback to using
hex(sig) as previously. No signal table is present for
Windows hence it will always print the hex value.

Sample code and new result:
```go
package main

import (
  "fmt"
  "time"
)

func main() {
  defer func() {
    if err := recover(); err != nil {
      fmt.Printf("err=%v\n", err)
    }
  }()

  ticker := time.Tick(1e9)
  for {
    <-ticker
  }
}
```

```shell
$ go run main.go &
$ kill -11 <pid>
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0xb01dfacedebac1e
pc=0xc71db]
...
```

Fixes #13969

Change-Id: Ie6be312eb766661f1cea9afec352b73270f27f9d
Reviewed-on: https://go-review.googlesource.com/22753
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/runtime/os1_nacl.go
src/runtime/os1_plan9.go
src/runtime/panic.go
src/runtime/signal_unix.go
src/runtime/signal_windows.go