Struct pdb_addr2line::ContextPdbData[][src]

pub struct ContextPdbData<'s> { /* fields omitted */ }
Expand description

Allows to easily create a Context directly from a pdb::PDB.

let mut pdb = pdb::PDB::open(stream)?;
let context_data = pdb_addr2line::ContextPdbData::try_from_pdb(&mut pdb)?;
let context = context_data.make_context()?;

Implementation note: It would be nice if a Context could be created from a PDB directly, without going through an intermediate ContextPdbData object. However, there doesn’t seem to be an easy way to do this, due to certain lifetime dependencies: The Context object wants to store certain objects inside itself (mostly for caching) which have a lifetime dependency on pdb::ModuleInfo, so the ModuleInfo has to be owned outside of the Context. So the ContextPdbData object acts as that external ModuleInfo owner.

Implementations

Create a ContextPdbData from a PDB. This parses many of the PDB streams and stores them in the ContextPdbData. Most importantly, it builds a list of all the ModuleInfo objects in the PDB.

Create a Context. This uses the default TypeFormatter settings.

Create a Context, using the specified TypeFormatter flags.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.