Struct breakpad_symbols::Symbolizer [] [src]

pub struct Symbolizer { /* fields omitted */ }

Symbolicate stack frames.

A Symbolizer manages loading symbols and looking up symbols in them including caching so that symbols for a given module are only loaded once.

Call Symbolizer::new to instantiate a Symbolizer. A Symbolizer requires a SymbolSupplier to locate symbols. If you have symbols on disk in the customary directory layout, a SimpleSymbolSupplier will work.

Use get_symbol_at_address or fill_symbol to do symbol lookup.

Methods

impl Symbolizer
[src]

[src]

Create a Symbolizer that uses supplier to locate symbols.

[src]

Helper method for non-minidump-using callers.

Pass debug_file and debug_id describing a specific module, and address, a module-relative address, and get back a symbol in that module that covers that address, or None.

See the module-level documentation for an example.

[src]

Fill symbol information in frame using the instruction address from frame, and the module information from module. If you're not using a minidump module, you can use SimpleModule and SimpleFrame.

Examples

use breakpad_symbols::{SimpleSymbolSupplier,Symbolizer,SimpleFrame,SimpleModule};
use std::path::PathBuf;
let paths = vec!(PathBuf::from("../testdata/symbols/"));
let supplier = SimpleSymbolSupplier::new(paths);
let symbolizer = Symbolizer::new(supplier);
let m = SimpleModule::new("test_app.pdb", "5A9832E5287241C1838ED98914E9B7FF1");
let mut f = SimpleFrame::with_instruction(0x1010);
symbolizer.fill_symbol(&m, &mut f);
assert_eq!(f.function.unwrap(), "vswprintf");
assert_eq!(f.source_file.unwrap(), r"c:\program files\microsoft visual studio 8\vc\include\swprintf.inl");
assert_eq!(f.source_line.unwrap(), 51);