| // Copyright 2019 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| package sym | |
| import "cmd/internal/dwarf" | |
| // LoaderSym holds a loader.Sym value. We can't refer to this | |
| // type from the sym package since loader imports sym. | |
| type LoaderSym int | |
| // CompilationUnit is an abstraction used by DWARF to represent a chunk of | |
| // debug-related data. We create a CompilationUnit per Object file in a | |
| // library (so, one for all the Go code, one for each assembly file, etc.). | |
| type CompilationUnit struct { | |
| Pkg string // The package name, eg ("fmt", or "runtime") | |
| Lib *Library // Our library | |
| Consts *Symbol // Package constants DIEs | |
| PCs []dwarf.Range // PC ranges, relative to Textp[0] | |
| DWInfo *dwarf.DWDie // CU root DIE | |
| FuncDIEs []*Symbol // Function DIE subtrees | |
| AbsFnDIEs []*Symbol // Abstract function DIE subtrees | |
| RangeSyms []*Symbol // Symbols for debug_range | |
| Textp []*Symbol // Text symbols in this CU | |
| DWARFFileTable []string // The file table used to generate the .debug_lines | |
| Consts2 LoaderSym // Package constants DIEs (loader) | |
| FuncDIEs2 []LoaderSym // Function DIE subtrees (loader) | |
| AbsFnDIEs2 []LoaderSym // Abstract function DIE subtrees (loader) | |
| RangeSyms2 []LoaderSym // Symbols for debug_range (loader) | |
| Textp2 []LoaderSym // Text symbols in this CU (loader) | |
| } |