]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: print runtime frames in throwsplit trace
authorAustin Clements <austin@google.com>
Wed, 22 Nov 2017 20:29:03 +0000 (15:29 -0500)
committerAustin Clements <austin@google.com>
Wed, 22 Nov 2017 21:44:38 +0000 (21:44 +0000)
newstack manually prints the stack trace if we try to grow the stack
when throwsplit is set. However, the default behavior is to omit
runtime frames. Since runtime frames can be critical to understanding
this crash, this change fixes this traceback to include them.

Updates #21431.

Change-Id: I5aa43f43aa2f10a8de7d67bcec743427be3a3b5d
Reviewed-on: https://go-review.googlesource.com/79518
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/runtime/stack.go

index 89458b7ff69f29dc79e988153e984ba8783905d2..eb0716c18db0b90bfe89086f7c754669b50e7e56 100644 (file)
@@ -942,6 +942,7 @@ func newstack() {
                        "\tmorebuf={pc:", hex(morebuf.pc), " sp:", hex(morebuf.sp), " lr:", hex(morebuf.lr), "}\n",
                        "\tsched={pc:", hex(gp.sched.pc), " sp:", hex(gp.sched.sp), " lr:", hex(gp.sched.lr), " ctxt:", gp.sched.ctxt, "}\n")
 
+               thisg.m.traceback = 2 // Include runtime frames
                traceback(morebuf.pc, morebuf.sp, morebuf.lr, gp)
                throw("runtime: stack split at bad time")
        }