]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: resolve magic value in gdbscript section generation
authorVyacheslav Pachkov <slava.pach@gmail.com>
Mon, 23 Aug 2021 08:40:32 +0000 (08:40 +0000)
committerCherry Mui <cherryyz@google.com>
Tue, 7 Sep 2021 16:20:11 +0000 (16:20 +0000)
According to the .debug_gdb_scripts section specification
[https://sourceware.org/gdb/onlinedocs/gdb/dotdebug_005fgdb_005fscripts-section.html],
each entry begins with a non-null prefix byte that specifies the kind of entry.
This commit resolves a question about magic byte and replaces a
hardcoded value with a meaningful constant "GdbScriptPythonFileId"
inside writegdbscript function.

Change-Id: I456c742bcb539a5853b9e2a6811033f35c37e7d4
GitHub-Last-Rev: 2f1c4cb9eec582a6e381fa866738aa17278005c2
GitHub-Pull-Request: golang/go#47646
Reviewed-on: https://go-review.googlesource.com/c/go/+/341391
Run-TryBot: Than McIntosh <thanm@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
src/cmd/link/internal/ld/dwarf.go

index 98ab248e13f7034a9240ee900817aaf23e733491..70138d37ff42bfa755e7fae3267f3015135bcc1b 100644 (file)
@@ -187,6 +187,16 @@ func isDwarf64(ctxt *Link) bool {
        return ctxt.HeadType == objabi.Haix
 }
 
+// https://sourceware.org/gdb/onlinedocs/gdb/dotdebug_005fgdb_005fscripts-section.html
+// Each entry inside .debug_gdb_scripts section begins with a non-null prefix
+// byte that specifies the kind of entry. The following entries are supported:
+const (
+       GdbScriptPythonFileId = 1
+       GdbScriptSchemeFileId = 3
+       GdbScriptPythonTextId = 4
+       GdbScriptSchemeTextId = 6
+)
+
 var gdbscript string
 
 // dwarfSecInfo holds information about a DWARF output section,
@@ -1618,7 +1628,7 @@ func (d *dwctxt) writegdbscript() dwarfSecInfo {
        gs := d.ldr.CreateSymForUpdate(".debug_gdb_scripts", 0)
        gs.SetType(sym.SDWARFSECT)
 
-       gs.AddUint8(1) // magic 1 byte?
+       gs.AddUint8(GdbScriptPythonFileId)
        gs.Addstring(gdbscript)
        return dwarfSecInfo{syms: []loader.Sym{gs.Sym()}}
 }