The offsets computed by the DWARF expressions for local variables
currently don't account for the extra stack slot used by the frame
pointer when GOEXPERIMENT=framepointer is enabled.
Fix this by adding the extra stack slot to the offset.
This fixes TestGdbPython with GOEXPERIMENT=framepointer.
Updates #15840.
Change-Id: I1b2ebb2750cd22266f4a89ec8d9e8bfa05fabd19
Reviewed-on: https://go-review.googlesource.com/23458
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
if !haslinkregister() {
offs -= int64(SysArch.PtrSize)
}
+ if obj.Framepointer_enabled != 0 {
+ // The frame pointer is saved
+ // between the CFA and the
+ // autos.
+ offs -= int64(SysArch.PtrSize)
+ }
case obj.A_PARAM:
dt = DW_ABRV_PARAM