1
0
mirror of https://github.com/golang/go synced 2024-11-12 05:40:22 -07:00

cmd/link/internal/ld: fix DWARF offsets with GOEXPERIMENT=framepointer

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>
This commit is contained in:
Austin Clements 2016-05-25 22:59:19 -04:00
parent d9557523c2
commit adff422779

View File

@ -1558,6 +1558,12 @@ func writelines(prev *LSym) *LSym {
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