diff --git a/src/debug/gosym/pclntab.go b/src/debug/gosym/pclntab.go index 1aed5ed7e7ed6e..5832ded6ea6046 100644 --- a/src/debug/gosym/pclntab.go +++ b/src/debug/gosym/pclntab.go @@ -312,11 +312,12 @@ func (t *LineTable) go12Funcs() []Func { f.LineTable = t f.FrameSize = int(info.deferreturn()) syms[i] = Sym{ - Value: f.Entry, - Type: 'T', - Name: t.funcName(info.nameoff()), - GoType: 0, - Func: f, + Value: f.Entry, + Type: 'T', + Name: t.funcName(info.nameoff()), + GoType: 0, + Func: f, + goVersion: t.version, } f.Sym = &syms[i] } diff --git a/src/debug/gosym/pclntab_test.go b/src/debug/gosym/pclntab_test.go index 04b5fcc2837e46..e380bb5ad7321f 100644 --- a/src/debug/gosym/pclntab_test.go +++ b/src/debug/gosym/pclntab_test.go @@ -268,6 +268,20 @@ func TestPCLine(t *testing.T) { } } +func TestSymVersion(t *testing.T) { + skipIfNotELF(t) + + table := getTable(t) + if table.go12line == nil { + t.Skip("not relevant to Go 1.2+ symbol table") + } + for _, fn := range table.Funcs { + if fn.goVersion == verUnknown { + t.Fatalf("unexpected symbol version: %v", fn) + } + } +} + // read115Executable returns a hello world executable compiled by Go 1.15. // // The file was compiled in /tmp/hello.go: