diff --git a/src/runtime/stack1.go b/src/runtime/stack1.go index 6a1f6aee926..3f89bb17390 100644 --- a/src/runtime/stack1.go +++ b/src/runtime/stack1.go @@ -466,9 +466,10 @@ func adjustframe(frame *stkframe, arg unsafe.Pointer) bool { } // Adjust saved base pointer if there is one. - if thechar == '6' && frame.argp-frame.varp == 2*ptrSize { + if thechar == '6' && frame.argp-frame.varp == 2*regSize { if !framepointer_enabled { print("runtime: found space for saved base pointer, but no framepointer experiment\n") + print("argp=", hex(frame.argp), " varp=", hex(frame.varp), "\n") throw("bad frame layout") } if stackDebug >= 3 { diff --git a/src/runtime/traceback.go b/src/runtime/traceback.go index c8134533991..4f63502e85c 100644 --- a/src/runtime/traceback.go +++ b/src/runtime/traceback.go @@ -235,7 +235,7 @@ func gentraceback(pc0 uintptr, sp0 uintptr, lr0 uintptr, gp *g, skip int, pcbuf // If framepointer_enabled and there's a frame, then // there's a saved bp here. if GOARCH == "amd64" && frame.varp > frame.sp && framepointer_enabled { - frame.varp -= ptrSize + frame.varp -= regSize } // Derive size of arguments.