Struct pdb_addr2line::Context [−][src]
pub struct Context<'a, 's> { /* fields omitted */ }Expand description
The main API of this crate. Resolves addresses to function information.
Implementations
pub fn new_from_parts(
module_info_provider: &'a dyn ModuleProvider<'s>,
address_map: &'a AddressMap<'s>,
global_symbols: &'a SymbolTable<'s>,
string_table: Option<&'a StringTable<'s>>,
debug_info: &'a DebugInformation<'_>,
type_formatter: MaybeOwned<'a, TypeFormatter<'a, 's>>,
modules: Rc<Vec<Module<'a>>>
) -> Result<Self, Error>
pub fn new_from_parts(
module_info_provider: &'a dyn ModuleProvider<'s>,
address_map: &'a AddressMap<'s>,
global_symbols: &'a SymbolTable<'s>,
string_table: Option<&'a StringTable<'s>>,
debug_info: &'a DebugInformation<'_>,
type_formatter: MaybeOwned<'a, TypeFormatter<'a, 's>>,
modules: Rc<Vec<Module<'a>>>
) -> Result<Self, Error>
Create a Context manually. Most consumers will want to use
ContextPdbData::make_context instead.
However, if you interact with a PDB directly and parse some of its contents for other uses, you may want to call this method in order to avoid overhead from repeatedly parsing the same streams.
The number of functions found in public symbols.
pub fn functions(&self) -> FunctionIter<'_, 'a, 's>ⓘNotable traits for FunctionIter<'c, 'a, 's>impl<'c, 'a, 's> Iterator for FunctionIter<'c, 'a, 's> type Item = Function;
pub fn functions(&self) -> FunctionIter<'_, 'a, 's>ⓘNotable traits for FunctionIter<'c, 'a, 's>impl<'c, 'a, 's> Iterator for FunctionIter<'c, 'a, 's> type Item = Function;
impl<'c, 'a, 's> Iterator for FunctionIter<'c, 'a, 's> type Item = Function;Iterate over all functions in the modules.
Find the function whose code contains the provided address. The return value only contains the function name and the rva range, but no file or line information.
Find information about the source code which generated the instruction at the provided address. This information includes the function name, file name and line number, of the containing procedure and of any functions that were inlined into the procedure by the compiler, at that address.
A lot of information is cached so that repeated calls are fast.