在运行2或3秒后,我的Mac上出现代码崩溃,但在centos 7上它没问题,而且,我正在进行1.6.3。
问题:
后续堆栈的参数意味着什么?
log.Printf(0x1068d8, 0x6, 0x0, 0x0, 0x0)
签名是:
Print(v ...interface{})
崩溃的代码:
package main
import (
"log"
)
func main() {
for {
log.Printf("hello")
}
}
它将在10秒内崩溃,并打印:
2017/09/02 21:50:01 hello
2017/09/02 21:50:01 hello
2017/09/02 21:50:01 hello
2017/09/02 21:50:01 hello
fatal error: unexpected signal during runtime execution
[signal 0xb code=0x1 addr=0x1777d0d1d11 pc=0x92f60]
goroutine 1 [running]:
runtime.throw(0x12c000, 0x2a)
/usr/local/Cellar/go/1.6.3/libexec/src/runtime/panic.go:547 +0x90 fp=0xc820035da0 sp=0xc820035d88
runtime.sigpanic()
/usr/local/Cellar/go/1.6.3/libexec/src/runtime/sigpanic_unix.go:12 +0x5a fp=0xc820035df0 sp=0xc820035da0
sync.(*Pool).Get(0x1991e0, 0x0, 0x0)
/usr/local/Cellar/go/1.6.3/libexec/src/sync/pool.go:102 +0x40 fp=0xc820035e40 sp=0xc820035df0
fmt.newPrinter(0xed13cae09)
/usr/local/Cellar/go/1.6.3/libexec/src/fmt/print.go:133 +0x27 fp=0xc820035e80 sp=0xc820035e40
fmt.Sprintf(0x1068d8, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.6.3/libexec/src/fmt/print.go:202 +0x2b fp=0xc820035ed0 sp=0xc820035e80
log.Printf(0x1068d8, 0x6, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.6.3/libexec/src/log/log.go:289 +0x49 fp=0xc820035f20 sp=0xc820035ed0
main.main()
/Users/haoy/video_projects/rtc-xswitch2/app/recorder/src/test.go:11 +0x3d fp=0xc820035f50 sp=0xc820035f20
runtime.main()
/usr/local/Cellar/go/1.6.3/libexec/src/runtime/proc.go:188 +0x2b0 fp=0xc820035fa0 sp=0xc820035f50
runtime.goexit()
/usr/local/Cellar/go/1.6.3/libexec/src/runtime/asm_amd64.s:1998 +0x1 fp=0xc820035fa8 sp=0xc820035fa0
exit status 2
答案 0 :(得分:5)
code 0x0b is 11, which is SIGSEGV.
我在使用Go 1.6.3的onMac之前看到了这个错误:请参阅“go get throws 'fatal error: unexpected signal during runtime execution'” Upgrading would be ideal
有关详情,请参阅go/go issue 17824和cl 32882:
doc/devel/release.html
:文档go1.6.3实际上并不支持macOS Sierra。