From: Russ Cox Date: Fri, 15 Feb 2013 19:48:47 +0000 (-0500) Subject: runtime: show frame pointer values during throw X-Git-Tag: go1.1rc2~995 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=6c1539bb0137021840b07c07641e28661a652d36;p=gostls13.git runtime: show frame pointer values during throw Should help if stack overflows start happening again. Fixes #3582. R=golang-dev, iant CC=golang-dev https://golang.org/cl/7311098 --- diff --git a/src/pkg/runtime/traceback_arm.c b/src/pkg/runtime/traceback_arm.c index 77aeb820a6..8ce000c1fe 100644 --- a/src/pkg/runtime/traceback_arm.c +++ b/src/pkg/runtime/traceback_arm.c @@ -125,6 +125,8 @@ runtime·gentraceback(byte *pc0, byte *sp, byte *lr0, G *gp, int32 skip, uintptr tracepc = pc; // back up to CALL instruction for funcline. if(n > 0 && pc > f->entry && !waspanic) tracepc -= sizeof(uintptr); + if(m->throwing && gp == m->curg) + runtime·printf("[fp=%p] ", fp); runtime·printf("%S(", f->name); for(i = 0; i < f->args; i++) { if(i != 0) diff --git a/src/pkg/runtime/traceback_x86.c b/src/pkg/runtime/traceback_x86.c index b0d85fd52f..a11df6b781 100644 --- a/src/pkg/runtime/traceback_x86.c +++ b/src/pkg/runtime/traceback_x86.c @@ -127,6 +127,8 @@ runtime·gentraceback(byte *pc0, byte *sp, byte *lr0, G *gp, int32 skip, uintptr tracepc = pc; // back up to CALL instruction for funcline. if(n > 0 && pc > f->entry && !waspanic) tracepc--; + if(m->throwing && gp == m->curg) + runtime·printf("[fp=%p] ", fp); runtime·printf("%S(", f->name); for(i = 0; i < f->args; i++) { if(i != 0)