]> Cypherpunks repositories - gostls13.git/commitdiff
undo CL 159990043 / 421fadcef39a
authorRuss Cox <rsc@golang.org>
Fri, 17 Oct 2014 14:11:03 +0000 (10:11 -0400)
committerRuss Cox <rsc@golang.org>
Fri, 17 Oct 2014 14:11:03 +0000 (10:11 -0400)
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

src/runtime/proc.c

index 332121e9036366a6b942f1d12c5853b0328077b5..1426790f407c264ce914bc920eeeb8bad3132a93 100644 (file)
@@ -2436,7 +2436,7 @@ extern byte runtime·etext[];
 void
 runtime·sigprof(uint8 *pc, uint8 *sp, uint8 *lr, G *gp, M *mp)
 {
-       int32 n, off;
+       int32 n;
        bool traceback;
        // 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.
@@ -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))
                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;
        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) {
                // Normal traceback is impossible or has failed.
                // See if it falls into several common cases.