From: Rob Pike Date: Fri, 21 Nov 2008 01:19:45 +0000 (-0800) Subject: tweak pcs in traceback so they point to calling line instead of line after call. X-Git-Tag: weekly.2009-11-06~2643 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=ec913c42b3d1a0a7f380aee5c1ce597f0d2f0f07;p=gostls13.git tweak pcs in traceback so they point to calling line instead of line after call. R=rsc DELTA=2 (0 added, 0 deleted, 2 changed) OCL=19745 CL=19745 --- diff --git a/src/runtime/print.c b/src/runtime/print.c index de9cabfbb1..26d59a7390 100644 --- a/src/runtime/print.c +++ b/src/runtime/print.c @@ -32,7 +32,7 @@ void sys·printpc(void *p) { prints("PC=0x"); - sys·printpointer(sys·getcallerpc(p)); + sys·printpointer((byte*)sys·getcallerpc(p) - 1); // -1 to get to CALL instr. } void diff --git a/src/runtime/rt2_amd64.c b/src/runtime/rt2_amd64.c index a3433678b2..38eeddb495 100644 --- a/src/runtime/rt2_amd64.c +++ b/src/runtime/rt2_amd64.c @@ -70,7 +70,7 @@ traceback(uint8 *pc, uint8 *sp, void* r15) /* print this frame */ prints("0x"); - sys·printpointer(callpc); + sys·printpointer(callpc - 1); // -1 to get to CALL instr. prints("?zi\n"); prints("\t"); prints(name);