]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix crash trace on amd64
authorRuss Cox <rsc@golang.org>
Sat, 11 Sep 2010 04:26:56 +0000 (00:26 -0400)
committerRuss Cox <rsc@golang.org>
Sat, 11 Sep 2010 04:26:56 +0000 (00:26 -0400)
g is not in r15 anymore.
now it's in a per-thread memory segment,
which is valid even inside a signal handler,
so we can just refer to g directly.

Fixes #1082.

R=r
CC=golang-dev
https://golang.org/cl/2149045

src/pkg/runtime/darwin/amd64/signal.c
src/pkg/runtime/freebsd/amd64/signal.c
src/pkg/runtime/linux/amd64/signal.c

index 648ef207ca6b928549db2953a2ba162ce33611a1..5dc811cfa7f2be69d387ff8cc4c0898479b0508b 100644 (file)
@@ -112,8 +112,8 @@ sighandler(int32 sig, Siginfo *info, void *context)
        printf("\n");
 
        if(gotraceback()){
-               traceback((void*)r->rip, (void*)r->rsp, 0, (void*)r->r15);
-               tracebackothers((void*)r->r15);
+               traceback((void*)r->rip, (void*)r->rsp, 0, g);
+               tracebackothers(g);
                dumpregs(r);
        }
 
index 57bfcfb55ebed852c6aa484ed7aeb2cc26041f13..09053ac7868b4f720054d60018a2366e74b005a5 100644 (file)
@@ -106,8 +106,8 @@ sighandler(int32 sig, Siginfo* info, void* context)
        printf("\n");
 
        if(gotraceback()){
-               traceback((void*)r->mc_rip, (void*)r->mc_rsp, 0, (void*)r->mc_r15);
-               tracebackothers((void*)r->mc_r15);
+               traceback((void*)r->mc_rip, (void*)r->mc_rsp, 0, g);
+               tracebackothers(g);
                dumpregs(r);
        }
 
index 63c3a2e6ea530e4fcb96183aade0c64679fca681..e46a0944c57b6fe1b6ff39dbd7e5cde17e95f5b7 100644 (file)
@@ -105,8 +105,8 @@ sighandler(int32 sig, Siginfo* info, void* context)
        printf("\n");
 
        if(gotraceback()){
-               traceback((void*)r->rip, (void*)r->rsp, 0, (void*)r->r15);
-               tracebackothers((void*)r->r15);
+               traceback((void*)r->rip, (void*)r->rsp, 0, g);
+               tracebackothers(g);
                dumpregs(r);
        }