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:
parent
d9557523c2
commit
adff422779
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user