diff options
Diffstat (limited to 'src/runtime/traceback.go')
| -rw-r--r-- | src/runtime/traceback.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/runtime/traceback.go b/src/runtime/traceback.go index 499256f42d..c813453399 100644 --- a/src/runtime/traceback.go +++ b/src/runtime/traceback.go @@ -232,6 +232,12 @@ func gentraceback(pc0 uintptr, sp0 uintptr, lr0 uintptr, gp *g, skip int, pcbuf frame.varp -= regSize } + // 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 + } + // Derive size of arguments. // Most functions have a fixed-size argument block, // so we can use metadata about the function f. |
