From caa7dacfd27beb493c262b18a9aae514863ddec7 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Tue, 7 Mar 2017 15:24:02 -0500 Subject: [PATCH] runtime: honor GOTRACEBACK=crash even if _g_.m.traceback != 0 Change-Id: I6de1ef8f67bde044b8706c01e98400e266e1f8f0 Reviewed-on: https://go-review.googlesource.com/37857 Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot Reviewed-by: Keith Randall --- src/runtime/runtime1.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/runtime/runtime1.go b/src/runtime/runtime1.go index 3d4578844b..2f7317b501 100644 --- a/src/runtime/runtime1.go +++ b/src/runtime/runtime1.go @@ -35,15 +35,14 @@ var traceback_env uint32 //go:nosplit func gotraceback() (level int32, all, crash bool) { _g_ := getg() - all = _g_.m.throwing > 0 - if _g_.m.traceback != 0 { - level = int32(_g_.m.traceback) - return - } t := atomic.Load(&traceback_cache) crash = t&tracebackCrash != 0 - all = all || t&tracebackAll != 0 - level = int32(t >> tracebackShift) + all = _g_.m.throwing > 0 || t&tracebackAll != 0 + if _g_.m.traceback != 0 { + level = int32(_g_.m.traceback) + } else { + level = int32(t >> tracebackShift) + } return }