Commit befecf6b authored by Russ Cox's avatar Russ Cox

runtime: fix crash trace on amd64

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
parent 0aa23170
......@@ -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);
}
......
......@@ -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);
}
......
......@@ -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);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment