|  | // 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) | 
|  | } |