mirror of https://github.com/golang/go.git
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
This commit is contained in:
parent
6962c15cec
commit
1ba977ccca
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Reference in New Issue