From ba9c639470cb962a799116fea55c91638752fe87 Mon Sep 17 00:00:00 2001 From: Jeremy Faller Date: Wed, 24 Jun 2020 14:30:16 -0400 Subject: [PATCH] [dev.link] cmd/link: add runtime.pcheader As of July 2020, a fair amount of the new linker's live memory, and runtime is spent generating pclntab. In an effort to streamline that code, this change starts breaking up the generation of runtime.pclntab into smaller chunks that can run later in a link. These changes are described in an (as yet not widely distributed) document that lays out an improved format. Largely the work consists of breaking up runtime.pclntab into smaller pieces, stopping much of the data rewriting, and getting runtime.pclntab into a form where we can reason about its size and look to shrink it. This change is the first part of that work -- just pulling out the header, and demonstrating where a majority of that work will be. Change-Id: I65618d0d0c780f7e5977c9df4abdbd1696fedfcb Reviewed-on: https://go-review.googlesource.com/c/go/+/241598 Run-TryBot: Jeremy Faller TryBot-Result: Gobot Gobot Reviewed-by: Cherry Zhang Reviewed-by: Austin Clements --- src/cmd/link/internal/ld/data.go | 4 + src/cmd/link/internal/ld/pcln.go | 95 +++++++++++---- src/cmd/link/internal/ld/symtab.go | 6 +- src/cmd/link/internal/loader/symbolbuilder.go | 4 + src/debug/gosym/pclntab.go | 112 ++++++++++++------ src/debug/gosym/pclntab_test.go | 50 ++++++++ src/debug/gosym/testdata/pcln115.gz | Bin 0 -> 124875 bytes src/runtime/symtab.go | 22 ++-- 8 files changed, 227 insertions(+), 66 deletions(-) create mode 100644 src/debug/gosym/testdata/pcln115.gz diff --git a/src/cmd/link/internal/ld/data.go b/src/cmd/link/internal/ld/data.go index 9329e32e8c..05ed022a74 100644 --- a/src/cmd/link/internal/ld/data.go +++ b/src/cmd/link/internal/ld/data.go @@ -1921,6 +1921,8 @@ func (state *dodataState) allocateDataSections(ctxt *Link) { /* gopclntab */ sect = state.allocateNamedSectionAndAssignSyms(seg, genrelrosecname(".gopclntab"), sym.SPCLNTAB, sym.SRODATA, relroSecPerm) ldr.SetSymSect(ldr.LookupOrCreateSym("runtime.pclntab", 0), sect) + ldr.SetSymSect(ldr.LookupOrCreateSym("runtime.pcheader", 0), sect) + ldr.SetSymSect(ldr.LookupOrCreateSym("runtime.pclntab_old", 0), sect) ldr.SetSymSect(ldr.LookupOrCreateSym("runtime.epclntab", 0), sect) // 6g uses 4-byte relocation offsets, so the entire segment must fit in 32 bits. @@ -2477,6 +2479,8 @@ func (ctxt *Link) address() []*sym.Segment { ctxt.xdefine("runtime.symtab", sym.SRODATA, int64(symtab.Vaddr)) ctxt.xdefine("runtime.esymtab", sym.SRODATA, int64(symtab.Vaddr+symtab.Length)) ctxt.xdefine("runtime.pclntab", sym.SRODATA, int64(pclntab.Vaddr)) + pcvar := ctxt.xdefine("runtime.pcheader", sym.SRODATA, int64(pclntab.Vaddr)) + ctxt.xdefine("runtime.pclntab_old", sym.SRODATA, int64(pclntab.Vaddr)+ldr.SymSize(pcvar)) ctxt.xdefine("runtime.epclntab", sym.SRODATA, int64(pclntab.Vaddr+pclntab.Length)) ctxt.xdefine("runtime.noptrdata", sym.SNOPTRDATA, int64(noptr.Vaddr)) ctxt.xdefine("runtime.enoptrdata", sym.SNOPTRDATA, int64(noptr.Vaddr+noptr.Length)) diff --git a/src/cmd/link/internal/ld/pcln.go b/src/cmd/link/internal/ld/pcln.go index 71eaed1a54..5ea210c139 100644 --- a/src/cmd/link/internal/ld/pcln.go +++ b/src/cmd/link/internal/ld/pcln.go @@ -227,13 +227,41 @@ func (state *pclnState) genInlTreeSym(fi loader.FuncInfo, arch *sys.Arch) loader return its } +// generatePCHeader creates the runtime.pcheader symbol, setting it up as a +// generator to fill in its data later. +func generatePCHeader(ctxt *Link, carrier *loader.SymbolBuilder, pclntabSym loader.Sym) { + ldr := ctxt.loader + writeHeader := func(ctxt *Link, s loader.Sym) { + ldr := ctxt.loader + header := ctxt.loader.MakeSymbolUpdater(s) + + // Check symbol order. + diff := ldr.SymValue(pclntabSym) - ldr.SymValue(s) + if diff <= 0 { + panic(fmt.Sprintf("expected runtime.pcheader(%x) to be placed before runtime.pclntab(%x)", ldr.SymValue(s), ldr.SymValue(pclntabSym))) + } + + // Write header. + // Keep in sync with runtime/symtab.go:pcHeader. + header.SetUint32(ctxt.Arch, 0, 0xfffffffa) + header.SetUint8(ctxt.Arch, 6, uint8(ctxt.Arch.MinLC)) + header.SetUint8(ctxt.Arch, 7, uint8(ctxt.Arch.PtrSize)) + off := header.SetUint(ctxt.Arch, 8, uint64(pclntabNfunc)) + header.SetUintptr(ctxt.Arch, off, uintptr(diff)) + } + + size := int64(8 + 2*ctxt.Arch.PtrSize) + s := ctxt.createGeneratorSymbol("runtime.pcheader", 0, sym.SPCLNTAB, size, writeHeader) + ldr.SetAttrReachable(s, true) + ldr.SetCarrierSym(s, carrier.Sym()) +} + // pclntab initializes the pclntab symbol with // runtime function and file name information. // These variables are used to initialize runtime.firstmoduledata, see symtab.go:symtab. var pclntabNfunc int32 var pclntabFiletabOffset int32 -var pclntabPclntabOffset int32 var pclntabFirstFunc loader.Sym var pclntabLastFunc loader.Sym @@ -242,22 +270,46 @@ var pclntabLastFunc loader.Sym // symbols, e.g. the set of all symbols X such that Outer(S) = X for // some other text symbol S. func (ctxt *Link) pclntab() loader.Bitmap { - funcdataBytes := int64(0) + // Go 1.2's symtab layout is documented in golang.org/s/go12symtab, but the + // layout and data has changed since that time. + // + // As of July 2020, here's the layout of pclntab: + // + // .gopclntab/__gopclntab [elf/macho section] + // runtime.pclntab + // Carrier symbol for the entire pclntab section. + // + // runtime.pcheader (see: runtime/symtab.go:pcHeader) + // 8-byte magic + // nfunc [thearch.ptrsize bytes] + // offset to runtime.pclntab_old from beginning of runtime.pcheader + // + // runtime.pclntab_old + // function table, alternating PC and offset to func struct [each entry thearch.ptrsize bytes] + // end PC [thearch.ptrsize bytes] + // offset to file table [4 bytes] + // func structures, function names, pcdata tables. + // filetable + ldr := ctxt.loader - ftabsym := ldr.LookupOrCreateSym("runtime.pclntab", 0) - ftab := ldr.MakeSymbolUpdater(ftabsym) + carrier := ldr.CreateSymForUpdate("runtime.pclntab", 0) + carrier.SetType(sym.SPCLNTAB) + carrier.SetReachable(true) + + // runtime.pclntab_old is just a placeholder,and will eventually be deleted. + // It contains the pieces of runtime.pclntab that haven't moved to a more + // ration form. + pclntabSym := ldr.LookupOrCreateSym("runtime.pclntab_old", 0) + generatePCHeader(ctxt, carrier, pclntabSym) + + funcdataBytes := int64(0) + ldr.SetCarrierSym(pclntabSym, carrier.Sym()) + ftab := ldr.MakeSymbolUpdater(pclntabSym) ftab.SetType(sym.SPCLNTAB) - ldr.SetAttrReachable(ftabsym, true) + ftab.SetReachable(true) state := makepclnState(ctxt) - // See golang.org/s/go12symtab for the format. Briefly: - // 8-byte header - // nfunc [thearch.ptrsize bytes] - // function table, alternating PC and offset to func struct [each entry thearch.ptrsize bytes] - // end PC [thearch.ptrsize bytes] - // offset to file table [4 bytes] - // Find container symbols and mark them as such. for _, s := range ctxt.Textp { outer := ldr.OuterSym(s) @@ -290,12 +342,7 @@ func (ctxt *Link) pclntab() loader.Bitmap { } pclntabNfunc = nfunc - ftab.Grow(8 + int64(ctxt.Arch.PtrSize) + int64(nfunc)*2*int64(ctxt.Arch.PtrSize) + int64(ctxt.Arch.PtrSize) + 4) - ftab.SetUint32(ctxt.Arch, 0, 0xfffffffb) - ftab.SetUint8(ctxt.Arch, 6, uint8(ctxt.Arch.MinLC)) - ftab.SetUint8(ctxt.Arch, 7, uint8(ctxt.Arch.PtrSize)) - ftab.SetUint(ctxt.Arch, 8, uint64(nfunc)) - pclntabPclntabOffset = int32(8 + ctxt.Arch.PtrSize) + ftab.Grow(int64(nfunc)*2*int64(ctxt.Arch.PtrSize) + int64(ctxt.Arch.PtrSize) + 4) szHint := len(ctxt.Textp) * 2 funcnameoff := make(map[string]int32, szHint) @@ -360,8 +407,8 @@ func (ctxt *Link) pclntab() loader.Bitmap { // invalid funcoff value to mark the hole. See also // runtime/symtab.go:findfunc prevFuncSize := int64(ldr.SymSize(prevFunc)) - setAddr(ftab, ctxt.Arch, 8+int64(ctxt.Arch.PtrSize)+int64(nfunc)*2*int64(ctxt.Arch.PtrSize), prevFunc, prevFuncSize) - ftab.SetUint(ctxt.Arch, 8+int64(ctxt.Arch.PtrSize)+int64(nfunc)*2*int64(ctxt.Arch.PtrSize)+int64(ctxt.Arch.PtrSize), ^uint64(0)) + setAddr(ftab, ctxt.Arch, int64(nfunc)*2*int64(ctxt.Arch.PtrSize), prevFunc, prevFuncSize) + ftab.SetUint(ctxt.Arch, int64(nfunc)*2*int64(ctxt.Arch.PtrSize)+int64(ctxt.Arch.PtrSize), ^uint64(0)) nfunc++ } prevFunc = s @@ -410,8 +457,8 @@ func (ctxt *Link) pclntab() loader.Bitmap { funcstart := int32(dSize) funcstart += int32(-dSize) & (int32(ctxt.Arch.PtrSize) - 1) // align to ptrsize - setAddr(ftab, ctxt.Arch, 8+int64(ctxt.Arch.PtrSize)+int64(nfunc)*2*int64(ctxt.Arch.PtrSize), s, 0) - ftab.SetUint(ctxt.Arch, 8+int64(ctxt.Arch.PtrSize)+int64(nfunc)*2*int64(ctxt.Arch.PtrSize)+int64(ctxt.Arch.PtrSize), uint64(funcstart)) + setAddr(ftab, ctxt.Arch, int64(nfunc)*2*int64(ctxt.Arch.PtrSize), s, 0) + ftab.SetUint(ctxt.Arch, int64(nfunc)*2*int64(ctxt.Arch.PtrSize)+int64(ctxt.Arch.PtrSize), uint64(funcstart)) // Write runtime._func. Keep in sync with ../../../../runtime/runtime2.go:/_func // and package debug/gosym. @@ -523,14 +570,14 @@ func (ctxt *Link) pclntab() loader.Bitmap { last := ctxt.Textp[len(ctxt.Textp)-1] pclntabLastFunc = last // Final entry of table is just end pc. - setAddr(ftab, ctxt.Arch, 8+int64(ctxt.Arch.PtrSize)+int64(nfunc)*2*int64(ctxt.Arch.PtrSize), last, ldr.SymSize(last)) + setAddr(ftab, ctxt.Arch, int64(nfunc)*2*int64(ctxt.Arch.PtrSize), last, ldr.SymSize(last)) // Start file table. dSize := len(ftab.Data()) start := int32(dSize) start += int32(-dSize) & (int32(ctxt.Arch.PtrSize) - 1) pclntabFiletabOffset = start - ftab.SetUint32(ctxt.Arch, 8+int64(ctxt.Arch.PtrSize)+int64(nfunc)*2*int64(ctxt.Arch.PtrSize)+int64(ctxt.Arch.PtrSize), uint32(start)) + ftab.SetUint32(ctxt.Arch, int64(nfunc)*2*int64(ctxt.Arch.PtrSize)+int64(ctxt.Arch.PtrSize), uint32(start)) nf := len(state.numberedFiles) ftab.Grow(int64(start) + int64((nf+1)*4)) diff --git a/src/cmd/link/internal/ld/symtab.go b/src/cmd/link/internal/ld/symtab.go index fddf85f1c5..15fa162c60 100644 --- a/src/cmd/link/internal/ld/symtab.go +++ b/src/cmd/link/internal/ld/symtab.go @@ -607,13 +607,15 @@ func (ctxt *Link) symtab() []sym.SymKind { // the definition of moduledata in runtime/symtab.go. // This code uses several global variables that are set by pcln.go:pclntab. moduledata := ldr.MakeSymbolUpdater(ctxt.Moduledata) - pclntab := ldr.Lookup("runtime.pclntab", 0) + // The pcHeader + moduledata.AddAddr(ctxt.Arch, ldr.Lookup("runtime.pcheader", 0)) // The pclntab slice + pclntab := ldr.Lookup("runtime.pclntab_old", 0) moduledata.AddAddr(ctxt.Arch, pclntab) moduledata.AddUint(ctxt.Arch, uint64(ldr.SymSize(pclntab))) moduledata.AddUint(ctxt.Arch, uint64(ldr.SymSize(pclntab))) // The ftab slice - moduledata.AddAddrPlus(ctxt.Arch, pclntab, int64(pclntabPclntabOffset)) + moduledata.AddAddr(ctxt.Arch, pclntab) moduledata.AddUint(ctxt.Arch, uint64(pclntabNfunc+1)) moduledata.AddUint(ctxt.Arch, uint64(pclntabNfunc+1)) // The filetab slice diff --git a/src/cmd/link/internal/loader/symbolbuilder.go b/src/cmd/link/internal/loader/symbolbuilder.go index 5b07d6e884..314111d5ea 100644 --- a/src/cmd/link/internal/loader/symbolbuilder.go +++ b/src/cmd/link/internal/loader/symbolbuilder.go @@ -287,6 +287,10 @@ func (sb *SymbolBuilder) SetUint(arch *sys.Arch, r int64, v uint64) int64 { return sb.setUintXX(arch, r, v, int64(arch.PtrSize)) } +func (sb *SymbolBuilder) SetUintptr(arch *sys.Arch, r int64, v uintptr) int64 { + return sb.setUintXX(arch, r, uint64(v), int64(arch.PtrSize)) +} + func (sb *SymbolBuilder) SetAddrPlus(arch *sys.Arch, off int64, tgt Sym, add int64) int64 { if sb.Type() == 0 { sb.SetType(sym.SDATA) diff --git a/src/debug/gosym/pclntab.go b/src/debug/gosym/pclntab.go index 7e54a94351..8c7ace17cd 100644 --- a/src/debug/gosym/pclntab.go +++ b/src/debug/gosym/pclntab.go @@ -14,6 +14,16 @@ import ( "sync" ) +// version of the pclntab +type version int + +const ( + verUnknown version = iota + ver11 + ver12 + ver116 +) + // A LineTable is a data structure mapping program counters to line numbers. // // In Go 1.1 and earlier, each function (represented by a Func) had its own LineTable, @@ -32,12 +42,17 @@ type LineTable struct { PC uint64 Line int - // Go 1.2 state - mu sync.Mutex - go12 int // is this in Go 1.2 format? -1 no, 0 unknown, 1 yes + // This mutex is used to keep parsing of pclntab synchronous. + mu sync.Mutex + + // Contains the version of the pclntab section. + version version + + // Go 1.2/1.16 state binary binary.ByteOrder quantum uint32 ptrsize uint32 + funcdata []byte functab []byte nfunctab uint32 filetab []byte @@ -140,11 +155,12 @@ func NewLineTable(data []byte, text uint64) *LineTable { // isGo12 reports whether this is a Go 1.2 (or later) symbol table. func (t *LineTable) isGo12() bool { - t.go12Init() - return t.go12 == 1 + t.parsePclnTab() + return t.version >= ver12 } const go12magic = 0xfffffffb +const go116magic = 0xfffffffa // uintptr returns the pointer-sized value encoded at b. // The pointer size is dictated by the table being read. @@ -155,49 +171,79 @@ func (t *LineTable) uintptr(b []byte) uint64 { return t.binary.Uint64(b) } -// go12init initializes the Go 1.2 metadata if t is a Go 1.2 symbol table. -func (t *LineTable) go12Init() { +// parsePclnTab parses the pclntab, setting the version. +func (t *LineTable) parsePclnTab() { t.mu.Lock() defer t.mu.Unlock() - if t.go12 != 0 { + if t.version != verUnknown { return } + // Note that during this function, setting the version is the last thing we do. + // If we set the version too early, and parsing failed (likely as a panic on + // slice lookups), we'd have a mistaken version. + // + // Error paths through this code will default the version to 1.1. + t.version = ver11 + defer func() { - // If we panic parsing, assume it's not a Go 1.2 symbol table. + // If we panic parsing, assume it's a Go 1.1 pclntab. recover() }() // Check header: 4-byte magic, two zeros, pc quantum, pointer size. - t.go12 = -1 // not Go 1.2 until proven otherwise if len(t.Data) < 16 || t.Data[4] != 0 || t.Data[5] != 0 || (t.Data[6] != 1 && t.Data[6] != 2 && t.Data[6] != 4) || // pc quantum (t.Data[7] != 4 && t.Data[7] != 8) { // pointer size return } - switch uint32(go12magic) { - case binary.LittleEndian.Uint32(t.Data): - t.binary = binary.LittleEndian - case binary.BigEndian.Uint32(t.Data): - t.binary = binary.BigEndian + var possibleVersion version + leMagic := binary.LittleEndian.Uint32(t.Data) + beMagic := binary.BigEndian.Uint32(t.Data) + switch { + case leMagic == go12magic: + t.binary, possibleVersion = binary.LittleEndian, ver12 + case beMagic == go12magic: + t.binary, possibleVersion = binary.BigEndian, ver12 + case leMagic == go116magic: + t.binary, possibleVersion = binary.LittleEndian, ver116 + case beMagic == go116magic: + t.binary, possibleVersion = binary.BigEndian, ver116 default: return } + // quantum and ptrSize are the same between 1.2 and 1.16 t.quantum = uint32(t.Data[6]) t.ptrsize = uint32(t.Data[7]) - t.nfunctab = uint32(t.uintptr(t.Data[8:])) - t.functab = t.Data[8+t.ptrsize:] - functabsize := t.nfunctab*2*t.ptrsize + t.ptrsize - fileoff := t.binary.Uint32(t.functab[functabsize:]) - t.functab = t.functab[:functabsize] - t.filetab = t.Data[fileoff:] - t.nfiletab = t.binary.Uint32(t.filetab) - t.filetab = t.filetab[:t.nfiletab*4] - - t.go12 = 1 // so far so good + switch possibleVersion { + case ver116: + t.nfunctab = uint32(t.uintptr(t.Data[8:])) + offset := t.uintptr(t.Data[8+t.ptrsize:]) + t.funcdata = t.Data[offset:] + t.functab = t.Data[offset:] + functabsize := t.nfunctab*2*t.ptrsize + t.ptrsize + fileoff := t.binary.Uint32(t.functab[functabsize:]) + t.filetab = t.functab[fileoff:] + t.functab = t.functab[:functabsize] + t.nfiletab = t.binary.Uint32(t.filetab) + t.filetab = t.filetab[:t.nfiletab*4] + case ver12: + t.nfunctab = uint32(t.uintptr(t.Data[8:])) + t.funcdata = t.Data + t.functab = t.Data[8+t.ptrsize:] + functabsize := t.nfunctab*2*t.ptrsize + t.ptrsize + fileoff := t.binary.Uint32(t.functab[functabsize:]) + t.functab = t.functab[:functabsize] + t.filetab = t.Data[fileoff:] + t.nfiletab = t.binary.Uint32(t.filetab) + t.filetab = t.filetab[:t.nfiletab*4] + default: + panic("unreachable") + } + t.version = possibleVersion } // go12Funcs returns a slice of Funcs derived from the Go 1.2 pcln table. @@ -213,7 +259,7 @@ func (t *LineTable) go12Funcs() []Func { f := &funcs[i] f.Entry = t.uintptr(t.functab[2*i*int(t.ptrsize):]) f.End = t.uintptr(t.functab[(2*i+2)*int(t.ptrsize):]) - info := t.Data[t.uintptr(t.functab[(2*i+1)*int(t.ptrsize):]):] + info := t.funcdata[t.uintptr(t.functab[(2*i+1)*int(t.ptrsize):]):] f.LineTable = t f.FrameSize = int(t.binary.Uint32(info[t.ptrsize+2*4:])) f.Sym = &Sym{ @@ -241,7 +287,7 @@ func (t *LineTable) findFunc(pc uint64) []byte { m := nf / 2 fm := f[2*t.ptrsize*m:] if t.uintptr(fm) <= pc && pc < t.uintptr(fm[2*t.ptrsize:]) { - return t.Data[t.uintptr(fm[t.ptrsize:]):] + return t.funcdata[t.uintptr(fm[t.ptrsize:]):] } else if pc < t.uintptr(fm) { nf = m } else { @@ -273,8 +319,8 @@ func (t *LineTable) string(off uint32) string { if s, ok := t.strings[off]; ok { return s } - i := bytes.IndexByte(t.Data[off:], 0) - s := string(t.Data[off : off+uint32(i)]) + i := bytes.IndexByte(t.funcdata[off:], 0) + s := string(t.funcdata[off : off+uint32(i)]) t.strings[off] = s return s } @@ -301,7 +347,7 @@ func (t *LineTable) step(p *[]byte, pc *uint64, val *int32, first bool) bool { // off is the offset to the beginning of the pc-value table, // and entry is the start PC for the corresponding function. func (t *LineTable) pcvalue(off uint32, entry, targetpc uint64) int32 { - p := t.Data[off:] + p := t.funcdata[off:] val := int32(-1) pc := entry @@ -324,8 +370,8 @@ func (t *LineTable) findFileLine(entry uint64, filetab, linetab uint32, filenum, return 0 } - fp := t.Data[filetab:] - fl := t.Data[linetab:] + fp := t.funcdata[filetab:] + fl := t.funcdata[linetab:] fileVal := int32(-1) filePC := entry lineVal := int32(-1) @@ -412,7 +458,7 @@ func (t *LineTable) go12LineToPC(file string, line int) (pc uint64) { // If this turns out to be a bottleneck, we could build a map[int32][]int32 // mapping file number to a list of functions with code from that file. for i := uint32(0); i < t.nfunctab; i++ { - f := t.Data[t.uintptr(t.functab[2*t.ptrsize*i+t.ptrsize:]):] + f := t.funcdata[t.uintptr(t.functab[2*t.ptrsize*i+t.ptrsize:]):] entry := t.uintptr(f) filetab := t.binary.Uint32(f[t.ptrsize+4*4:]) linetab := t.binary.Uint32(f[t.ptrsize+5*4:]) diff --git a/src/debug/gosym/pclntab_test.go b/src/debug/gosym/pclntab_test.go index 6baa53defd..33772c7813 100644 --- a/src/debug/gosym/pclntab_test.go +++ b/src/debug/gosym/pclntab_test.go @@ -5,6 +5,8 @@ package gosym import ( + "bytes" + "compress/gzip" "debug/elf" "internal/testenv" "io/ioutil" @@ -264,3 +266,51 @@ func TestPCLine(t *testing.T) { off = pc + 1 - text.Addr } } + +// Test that we can parse a pclntab from 1.15. +// The file was compiled in /tmp/hello.go: +// [BEGIN] +// package main +// +// func main() { +// println("hello") +// } +// [END] +func Test115PclnParsing(t *testing.T) { + zippedDat, err := ioutil.ReadFile("testdata/pcln115.gz") + if err != nil { + t.Fatal(err) + } + var gzReader *gzip.Reader + gzReader, err = gzip.NewReader(bytes.NewBuffer(zippedDat)) + if err != nil { + t.Fatal(err) + } + var dat []byte + dat, err = ioutil.ReadAll(gzReader) + if err != nil { + t.Fatal(err) + } + const textStart = 0x1001000 + pcln := NewLineTable(dat, textStart) + var tab *Table + tab, err = NewTable(nil, pcln) + if err != nil { + t.Fatal(err) + } + var f *Func + var pc uint64 + pc, f, err = tab.LineToPC("/tmp/hello.go", 3) + if err != nil { + t.Fatal(err) + } + if pcln.version != ver12 { + t.Fatal("Expected pcln to parse as an older version") + } + if pc != 0x105c280 { + t.Fatalf("expect pc = 0x105c280, got 0x%x", pc) + } + if f.Name != "main.main" { + t.Fatalf("expected to parse name as main.main, got %v", f.Name) + } +} diff --git a/src/debug/gosym/testdata/pcln115.gz b/src/debug/gosym/testdata/pcln115.gz new file mode 100644 index 0000000000000000000000000000000000000000..db5c3d48ad10189661237a1ca5b55b346b80eee6 GIT binary patch literal 124875 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

t4-?)GpQEshQxos$fjg5 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�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� zjaz=5TmITNy?MM&y>s20@%7H=IPFBvblPb^_wvtZncupM><~$3TW6r&+2)o@_8hG5 z0(*Y{cr&hBxeMnvVzIkKQlquh_6N>(*FW}n?Y#!^D-f=YDYqT*+Yq+wIl6LZcPn?P zo06YbRY#q1OX|G!(n;_b5pzR$`}tQs>gK^$>LI_#Jdqx%_zL zaCDqrk90h)BpH_4Nyj#qj*5wFzulkDap~B1I6CaZ&LlB&S2QfEZ(VX)!`#MZ zvO`H?mf{kYbFMr8*>SME?C<#P@a#5a0qF0>8NaJ;c94 z_~{+5{-y5%8HOi0C_yAe{~^Xm5;;x8lYd(Wxgvd(p`ra0%0ecr8p4a+)fSNpk~$LxjB z55c~fTZ6S6SLiRIg+@_AVR=zxj6zYARP7&A>VBJ2SXESj-)7j~`tVz* zHph%0J9sV#NSm#_Ms?tK0=-L~Q-3E!(&$DzWo&>Oe+4FYjNXp-@*FemP6+bgwIKcl zqF5;6b`W<0ObGf#Uw^)Fl2C(_^#%G1@_iQqy-2?ALP$=d-{6xlB=O*t_`aZgV_WAN zF9bgi9-#7#QxrwCfw&MYeKX%UMJ&>%_|n93qfwmd&1={JlUD=JXDT$%$EXq(Dh!ir zk>l(n(*{l8=a`A{nB`occ z!xTGk??Ncz2tn+ig~y8tfyopCwW;

smTUSlRYrV69PJDQZo;jVPb`Pq$JnAk}oCqgz1Q8adI76IIMLwbvIV5}!;wK1vsL;H?dNl>;mvYl` z;373$p=I(IEqqgPpjOlfp+@*AY>6L1P`->U^&^OUq_T{bBb8;yxB-&NWS&qd2Ix9| zBM)c5E7Gqx-}n<#xmXA09uRA&Z=4t_M*1{$tX_rG43Lkei90&KtrZPXX}DaM((oeV zSuhDQ!Gav$u{;Q;ijOFqi26T`+S|mW2Jz7pKAb&Fm2%Nrv5!^~K~y4z$cKP|t>H@z z;5C>L?jM?w;E&J*UnDJQOkyC#pG;GH$th`-saY9j`m`)FGh2>_m%0A$KF?1167e4q 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 J8)-Df0|4x39R>gZ literal 0 HcmV?d00001 diff --git a/src/runtime/symtab.go b/src/runtime/symtab.go index 1e86662adc..95f01c555b 100644 --- a/src/runtime/symtab.go +++ b/src/runtime/symtab.go @@ -334,12 +334,23 @@ const ( funcID_wrapper // any autogenerated code (hash/eq algorithms, method wrappers, etc.) ) +// PCHeader holds data used by the pclntab lookups. +type pcHeader struct { + magic uint32 // 0xFFFFFFFA + pad1, pad2 uint8 // 0,0 + minLC uint8 // min instruction size + ptrSize uint8 // size of a ptr in bytes + nfunc int // number of functions in the module + pclnOffset uintptr // offset to the pclntab variable from pcHeader +} + // moduledata records information about the layout of the executable // image. It is written by the linker. Any changes here must be // matched changes to the code in cmd/internal/ld/symtab.go:symtab. // moduledata is stored in statically allocated non-pointer memory; // none of the pointers here are visible to the garbage collector. type moduledata struct { + pcHeader *pcHeader pclntable []byte ftab []functab filetab []uint32 @@ -514,13 +525,10 @@ func moduledataverify() { const debugPcln = false func moduledataverify1(datap *moduledata) { - // See golang.org/s/go12symtab for header: 0xfffffffb, - // two zero bytes, a byte giving the PC quantum, - // and a byte giving the pointer width in bytes. - pcln := *(**[8]byte)(unsafe.Pointer(&datap.pclntable)) - pcln32 := *(**[2]uint32)(unsafe.Pointer(&datap.pclntable)) - if pcln32[0] != 0xfffffffb || pcln[4] != 0 || pcln[5] != 0 || pcln[6] != sys.PCQuantum || pcln[7] != sys.PtrSize { - println("runtime: function symbol table header:", hex(pcln32[0]), hex(pcln[4]), hex(pcln[5]), hex(pcln[6]), hex(pcln[7])) + // Check that the pclntab's format is valid. + hdr := datap.pcHeader + if hdr.magic != 0xfffffffa || hdr.pad1 != 0 || hdr.pad2 != 0 || hdr.minLC != sys.PCQuantum || hdr.ptrSize != sys.PtrSize { + println("runtime: function symbol table header:", hex(hdr.magic), hex(hdr.pad1), hex(hdr.pad2), hex(hdr.minLC), hex(hdr.ptrSize)) throw("invalid function symbol table\n") }