1// Copyright 2019 The Go Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5package sym 6 7import "cmd/internal/dwarf" 8 9// LoaderSym holds a loader.Sym value. We can't refer to this 10// type from the sym package since loader imports sym. 11type LoaderSym uint32 12 13// A CompilationUnit represents a set of source files that are compiled 14// together. Since all Go sources in a Go package are compiled together, 15// there's one CompilationUnit per package that represents all Go sources in 16// that package, plus one for each assembly file. 17// 18// Equivalently, there's one CompilationUnit per object file in each Library 19// loaded by the linker. 20// 21// These are used for both DWARF and pclntab generation. 22type CompilationUnit struct { 23 Lib *Library // Our library 24 PclnIndex int // Index of this CU in pclntab 25 PCs []dwarf.Range // PC ranges, relative to Textp[0] 26 DWInfo *dwarf.DWDie // CU root DIE 27 FileTable []string // The file table used in this compilation unit. 28 29 Consts LoaderSym // Package constants DIEs 30 FuncDIEs []LoaderSym // Function DIE subtrees 31 VarDIEs []LoaderSym // Global variable DIEs 32 AbsFnDIEs []LoaderSym // Abstract function DIE subtrees 33 RangeSyms []LoaderSym // Symbols for debug_range 34 Textp []LoaderSym // Text symbols in this CU 35} 36