Commit 1ba977cc authored by Russ Cox's avatar Russ Cox

undo CL 159990043 / 421fadcef39a

Dmitriy believes this broke Windows.
It looks like build.golang.org stopped before that,
but it's worth a shot.

««« original CL description
runtime: make pprof a little nicer

Update #8942

This does not fully address issue 8942 but it does make
the profiles much more useful, until that issue can be
fixed completely.

LGTM=dvyukov
R=r, dvyukov
CC=golang-codereviews
https://golang.org/cl/159990043
»»»

TBR=dvyukov
CC=golang-codereviews
https://golang.org/cl/160030043
parent 6962c15c
...@@ -2436,7 +2436,7 @@ extern byte runtime·etext[]; ...@@ -2436,7 +2436,7 @@ extern byte runtime·etext[];
void void
runtime·sigprof(uint8 *pc, uint8 *sp, uint8 *lr, G *gp, M *mp) runtime·sigprof(uint8 *pc, uint8 *sp, uint8 *lr, G *gp, M *mp)
{ {
int32 n, off; int32 n;
bool traceback; bool traceback;
// Do not use global m in this function, use mp instead. // Do not use global m in this function, use mp instead.
// On windows one m is sending reports about all the g's, so m means a wrong thing. // On windows one m is sending reports about all the g's, so m means a wrong thing.
...@@ -2530,20 +2530,9 @@ runtime·sigprof(uint8 *pc, uint8 *sp, uint8 *lr, G *gp, M *mp) ...@@ -2530,20 +2530,9 @@ runtime·sigprof(uint8 *pc, uint8 *sp, uint8 *lr, G *gp, M *mp)
((uint8*)runtime·gogo <= pc && pc < (uint8*)runtime·gogo + RuntimeGogoBytes)) ((uint8*)runtime·gogo <= pc && pc < (uint8*)runtime·gogo + RuntimeGogoBytes))
traceback = false; traceback = false;
off = 0;
if(gp == mp->g0 && mp->curg != nil) {
stk[0] = (uintptr)pc;
off = 1;
gp = mp->curg;
pc = (uint8*)gp->sched.pc;
sp = (uint8*)gp->sched.sp;
lr = 0;
traceback = true;
}
n = 0; n = 0;
if(traceback) if(traceback)
n = runtime·gentraceback((uintptr)pc, (uintptr)sp, (uintptr)lr, gp, 0, stk+off, nelem(stk)-off, nil, nil, false); n = runtime·gentraceback((uintptr)pc, (uintptr)sp, (uintptr)lr, gp, 0, stk, nelem(stk), nil, nil, false);
if(!traceback || n <= 0) { if(!traceback || n <= 0) {
// Normal traceback is impossible or has failed. // Normal traceback is impossible or has failed.
// See if it falls into several common cases. // See if it falls into several common cases.
......
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