]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.15] cmd/compile: do not emit an extra debug_line entry for the...
authorAlessandro Arzilli <alessandro.arzilli@gmail.com>
Thu, 12 Nov 2020 13:58:46 +0000 (14:58 +0100)
committerDmitri Shuralyov <dmitshur@golang.org>
Mon, 23 Nov 2020 19:42:26 +0000 (19:42 +0000)
Uses DW_LNS_advance_pc directly, instead of calling putpclcdelta
because the latter will create a new debug_line entry for the end of
sequence address.

Updates #42484.
Fixes #42521.

Change-Id: Ib6355605cac101b9bf37a3b4961ab0cee678a839
Reviewed-on: https://go-review.googlesource.com/c/go/+/268937
Trust: Than McIntosh <thanm@google.com>
Run-TryBot: Than McIntosh <thanm@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-on: https://go-review.googlesource.com/c/go/+/269517

src/cmd/internal/obj/dwarf.go

index cd1d5b86878e02e1d89c83fdbffbe9d37fd255f0..8a12849d77255be30b30a79d51acacba773152e8 100644 (file)
@@ -106,7 +106,8 @@ func (ctxt *Link) generateDebugLinesSymbol(s, lines *LSym) {
        // GDB will assign a line number of zero the last row in the line
        // table, which we don't want.
        lastlen := uint64(s.Size - (lastpc - s.Func.Text.Pc))
-       putpclcdelta(ctxt, dctxt, lines, lastlen, 0)
+       dctxt.AddUint8(lines, dwarf.DW_LNS_advance_pc)
+       dwarf.Uleb128put(dctxt, lines, int64(lastlen))
        dctxt.AddUint8(lines, 0) // start extended opcode
        dwarf.Uleb128put(dctxt, lines, 1)
        dctxt.AddUint8(lines, dwarf.DW_LNE_end_sequence)