]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: include DW_AT_producer in .debug_info
authorDavid Chase <drchase@google.com>
Mon, 8 May 2017 18:37:02 +0000 (14:37 -0400)
committerDavid Chase <drchase@google.com>
Wed, 10 May 2017 14:47:41 +0000 (14:47 +0000)
This can make life easier for Delve (and other debuggers),
and can help them with bug reports.

Sample producer field (from objdump):
<48> DW_AT_producer : Go cmd/compile devel +8a59dbf41a Mon May 8 16:02:44 2017 -0400

Change-Id: I0605843c959b53a60a25a3b870aa8755bf5d5b13
Reviewed-on: https://go-review.googlesource.com/33588
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/internal/dwarf/dwarf.go
src/cmd/link/internal/ld/dwarf.go

index 827b146584bd38c9134951ccd6796bfa5300a39d..042a79b5a6824d102668a5fbf6ffb934b7baf05d 100644 (file)
@@ -197,6 +197,7 @@ var abbrevs = [DW_NABRV]dwAbbrev{
                        {DW_AT_high_pc, DW_FORM_addr},
                        {DW_AT_stmt_list, DW_FORM_data4},
                        {DW_AT_comp_dir, DW_FORM_string},
+                       {DW_AT_producer, DW_FORM_string},
                },
        },
 
index c190e537fe2efa1081ca89acd8387fe23d9ede3c..35c450904ad8ec12a915737f930344a78d4a650c 100644 (file)
@@ -1024,6 +1024,8 @@ func writelines(ctxt *Link, syms []*Symbol) ([]*Symbol, []*Symbol) {
        // OS X linker requires compilation dir or absolute path in comp unit name to output debug info.
        compDir := getCompilationDir()
        newattr(dwinfo, dwarf.DW_AT_comp_dir, dwarf.DW_CLS_STRING, int64(len(compDir)), compDir)
+       producer := "Go cmd/compile " + objabi.Version
+       newattr(dwinfo, dwarf.DW_AT_producer, dwarf.DW_CLS_STRING, int64(len(producer)), producer)
 
        // Write .debug_line Line Number Program Header (sec 6.2.4)
        // Fields marked with (*) must be changed for 64-bit dwarf