diff options
author | Russ Cox <rsc@golang.org> | 2011-08-22 23:26:39 -0400 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2011-08-22 23:26:39 -0400 |
commit | 29b956096f1429713989c4521a7b7b70545bef7c (patch) | |
tree | 4b370eec8db5b79fc0f7b338d09fbb9b4f8b9789 /test/golden.out | |
parent | f7788558b07668bc7ce529d7d65ab5dc3c07a7f3 (diff) | |
download | go-29b956096f1429713989c4521a7b7b70545bef7c.tar.gz |
runtime: simplify stack traces
Make the stack traces more readable for new
Go programmers while preserving their utility for old hands.
- Change status number [4] to string.
- Elide frames in runtime package (internal details).
- Swap file:line and arguments.
- Drop 'created by' for main goroutine.
- Show goroutines in order of allocation:
implies main goroutine first if nothing else.
There is no option to get the extra frames back.
Uncomment 'return 1' at the bottom of symtab.c.
$ 6.out
throw: all goroutines are asleep - deadlock!
goroutine 1 [chan send]:
main.main()
/Users/rsc/g/go/src/pkg/runtime/x.go:22 +0x8a
goroutine 2 [select (no cases)]:
main.sel()
/Users/rsc/g/go/src/pkg/runtime/x.go:11 +0x18
created by main.main
/Users/rsc/g/go/src/pkg/runtime/x.go:19 +0x23
goroutine 3 [chan receive]:
main.recv(0xf8400010a0, 0x0)
/Users/rsc/g/go/src/pkg/runtime/x.go:15 +0x2e
created by main.main
/Users/rsc/g/go/src/pkg/runtime/x.go:20 +0x50
goroutine 4 [chan receive (nil chan)]:
main.recv(0x0, 0x0)
/Users/rsc/g/go/src/pkg/runtime/x.go:15 +0x2e
created by main.main
/Users/rsc/g/go/src/pkg/runtime/x.go:21 +0x66
$
$ 6.out index
panic: runtime error: index out of range
goroutine 1 [running]:
main.main()
/Users/rsc/g/go/src/pkg/runtime/x.go:25 +0xb9
$
$ 6.out nil
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x22ca]
goroutine 1 [running]:
main.main()
/Users/rsc/g/go/src/pkg/runtime/x.go:28 +0x211
$
$ 6.out panic
panic: panic
goroutine 1 [running]:
main.main()
/Users/rsc/g/go/src/pkg/runtime/x.go:30 +0x101
$
R=golang-dev, qyzhai, n13m3y3r, r
CC=golang-dev
http://codereview.appspot.com/4907048
Diffstat (limited to 'test/golden.out')
-rw-r--r-- | test/golden.out | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/test/golden.out b/test/golden.out index 655ceda56..d2a104b79 100644 --- a/test/golden.out +++ b/test/golden.out @@ -4,19 +4,15 @@ =========== ./cmp2.go panic: runtime error: comparing uncomparable type []int - =========== ./cmp3.go panic: runtime error: comparing uncomparable type []int - =========== ./cmp4.go panic: runtime error: hash of unhashable type []int - =========== ./cmp5.go panic: runtime error: hash of unhashable type []int - =========== ./deferprint.go printing: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 42 true false true +1.500000e+000 world 0x0 [0/0]0x0 0x0 0x0 255 @@ -115,11 +111,9 @@ PASS =========== interface/fail.go panic: interface conversion: *main.S is not main.I: missing method Foo - =========== interface/returntype.go panic: interface conversion: *main.S is not main.I2: missing method Name - == nilptr/ == syntax/ @@ -154,12 +148,10 @@ M =========== fixedbugs/bug113.go panic: interface conversion: interface is int, not int32 - =========== fixedbugs/bug148.go 2 3 panic: interface conversion: interface is main.T, not main.T - =========== fixedbugs/bug328.go 0x0 |