Symbolizer is responsible for converting raw addresses into symbol names and modules with the assistance of the export directory or symbol resolver.
| 115 | // into symbol names and modules with the assistance of the |
| 116 | // export directory or symbol resolver. |
| 117 | type Symbolizer struct { |
| 118 | config *config.Config |
| 119 | procs map[uint32]*process |
| 120 | mods map[uint32]map[va.Address]*module |
| 121 | mu sync.Mutex |
| 122 | |
| 123 | // symbols stores the mapping of stack |
| 124 | // return address and the symbol information |
| 125 | // identifying the originated call. It is populated |
| 126 | // by the Debug Help API function when the module |
| 127 | // doesn't exist in process state, and in addition |
| 128 | // it is populated by each export directory symbol |
| 129 | // resolution |
| 130 | symbols map[uint32]map[va.Address]syminfo |
| 131 | |
| 132 | // exps stores resolved export directories |
| 133 | exps *ExportsDirectoryCache |
| 134 | |
| 135 | r Resolver |
| 136 | psnap ps.Snapshotter |
| 137 | |
| 138 | cleaner *time.Ticker |
| 139 | purger *time.Ticker |
| 140 | |
| 141 | quit chan struct{} |
| 142 | |
| 143 | enqueue bool |
| 144 | } |
| 145 | |
| 146 | // NewSymbolizer builds a new instance of address symbolizer. |
| 147 | // It performs the initialization of symbol options, symbols |
nothing calls this directly
no outgoing calls
no test coverage detected