class LoadedModuleSymbols
Defined at line 29 of file ../../src/developer/debug/zxdb/symbols/loaded_module_symbols.h
Represents the symbol information for a module that's loaded. This just references the underlying
ModuleSymbols (which is the same regardless of load address) and holds the load address.
Public Methods
void LoadedModuleSymbols (fxl::RefPtr<ModuleSymbols> module, std::string build_id, uint64_t load_address, uint64_t debug_address)
Defined at line 14 of file ../../src/developer/debug/zxdb/symbols/loaded_module_symbols.cc
void ~LoadedModuleSymbols ()
Defined at line 23 of file ../../src/developer/debug/zxdb/symbols/loaded_module_symbols.cc
fxl::WeakPtr<LoadedModuleSymbols> GetWeakPtr ()
Defined at line 25 of file ../../src/developer/debug/zxdb/symbols/loaded_module_symbols.cc
std::vector<Location> ResolveInputLocation (const InputLocation & input_location, const ResolveOptions & options)
Converts the given InputLocation into one or more locations. If the location is an address, it
will be be returned whether or not the address is inside this module (it will be symbolized if
possible). If the input is a function or file/line, they could match more than one location and
all locations will be returned.
If symbolize is true, the results will be symbolized, otherwise the output locations will be
regular addresses (this will be slightly faster).
LINE LOOKUP
-----------
Finds the addresses for all instantiations of the given line. Often there will be one result,
but inlining and templates could duplicate the code.
It may not be possible to return the exact line. The line could have been optimized out, it
could have been a continuation of an earlier line, or there could be no code at that line in
the first place. This function will try its best to find the best line if an exact match isn't
possible.
This function will also match multiple different input files according to FindFileMatches()
rules. If you don't want this, we can add a field to ResolveOptions to disable this and force
exact matches.
If you need to find out the exact actual location that this resolved to, look up the resulting
address again.
If the file wasn't found or contains no code, it will return an empty vector. If the file
exists and contains code, it will always return *something*.
SYMBOL LOOKUP
-------------
Returns the addresses for the given function name. The function name must be an exact match.
The addresses will indicate the start of the function. Since a function implementation can be
duplicated more than once, there can be multiple results.
Defined at line 29 of file ../../src/developer/debug/zxdb/symbols/loaded_module_symbols.cc
const ModuleSymbols * module_symbols ()
Returns the underlying ModuleSymbols object.
MAY BE NULL if the symbols could not be loaded.
Defined at line 37 of file ../../src/developer/debug/zxdb/symbols/loaded_module_symbols.h
ModuleSymbols * module_symbols ()
Defined at line 38 of file ../../src/developer/debug/zxdb/symbols/loaded_module_symbols.h
fxl::RefPtr<ModuleSymbols> module_symbols_ref ()
Defined at line 39 of file ../../src/developer/debug/zxdb/symbols/loaded_module_symbols.h
uint64_t load_address ()
Base address for the module.
Defined at line 44 of file ../../src/developer/debug/zxdb/symbols/loaded_module_symbols.h
uint64_t debug_address ()
Address of the link map for the module.
Defined at line 47 of file ../../src/developer/debug/zxdb/symbols/loaded_module_symbols.h
const std::string & build_id ()
Build ID for the module.
Defined at line 50 of file ../../src/developer/debug/zxdb/symbols/loaded_module_symbols.h
const SymbolContext & symbol_context ()
Most functions in ModuleSymbols take a symbol context to convert between absolute addresses in
memory to ones relative to the module load address.
Defined at line 54 of file ../../src/developer/debug/zxdb/symbols/loaded_module_symbols.h