aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/runtime
diff options
context:
space:
mode:
authorDmitriy Vyukov <dvyukov@google.com>2014-03-07 00:01:24 +0400
committerDmitriy Vyukov <dvyukov@google.com>2014-03-07 00:01:24 +0400
commit2fb87ddb59218797686f8d725a5accb195ccbaca (patch)
tree98ad59c6f16a4d328813ca888d4c7dd63776800d /src/pkg/runtime
parentfb5e1e1fa181f658431ef2c12fa2ccef5f728bdf (diff)
downloadgo-2fb87ddb59218797686f8d725a5accb195ccbaca.tar.xz
runtime: print goroutine header on fault
I've just needed the G status on fault to debug runtime bug. For some reason we print everything except header here. Make it more informative and consistent. R=rsc CC=golang-codereviews https://golang.org/cl/67870056
Diffstat (limited to 'src/pkg/runtime')
-rw-r--r--src/pkg/runtime/signal_386.c1
-rw-r--r--src/pkg/runtime/signal_amd64.c1
-rw-r--r--src/pkg/runtime/signal_arm.c1
3 files changed, 3 insertions, 0 deletions
diff --git a/src/pkg/runtime/signal_386.c b/src/pkg/runtime/signal_386.c
index 9f3f52179c..829f389cc2 100644
--- a/src/pkg/runtime/signal_386.c
+++ b/src/pkg/runtime/signal_386.c
@@ -112,6 +112,7 @@ Throw:
runtime·printf("\n");
if(runtime·gotraceback(&crash)){
+ runtime·goroutineheader(gp);
runtime·traceback(SIG_EIP(info, ctxt), SIG_ESP(info, ctxt), 0, gp);
runtime·tracebackothers(gp);
runtime·printf("\n");
diff --git a/src/pkg/runtime/signal_amd64.c b/src/pkg/runtime/signal_amd64.c
index 2184b7f64b..01af0e7edf 100644
--- a/src/pkg/runtime/signal_amd64.c
+++ b/src/pkg/runtime/signal_amd64.c
@@ -122,6 +122,7 @@ Throw:
runtime·printf("\n");
if(runtime·gotraceback(&crash)){
+ runtime·goroutineheader(gp);
runtime·traceback(SIG_RIP(info, ctxt), SIG_RSP(info, ctxt), 0, gp);
runtime·tracebackothers(gp);
runtime·printf("\n");
diff --git a/src/pkg/runtime/signal_arm.c b/src/pkg/runtime/signal_arm.c
index 4f797346c8..563f1f2bef 100644
--- a/src/pkg/runtime/signal_arm.c
+++ b/src/pkg/runtime/signal_arm.c
@@ -112,6 +112,7 @@ Throw:
runtime·printf("\n");
if(runtime·gotraceback(&crash)){
+ runtime·goroutineheader(gp);
runtime·traceback(SIG_PC(info, ctxt), SIG_SP(info, ctxt), SIG_LR(info, ctxt), gp);
runtime·tracebackothers(gp);
runtime·printf("\n");