[][src]Struct symbolic::debuginfo::pdb::PdbObject

pub struct PdbObject<'d> { /* fields omitted */ }

Program Database, the debug companion format on Windows.

This object is a sole debug companion to PeObject.

Implementations

impl<'d> PdbObject<'d>[src]

pub fn test(data: &[u8]) -> bool[src]

Tests whether the buffer could contain an PDB object.

pub fn parse(data: &'d [u8]) -> Result<PdbObject<'d>, PdbError>[src]

Tries to parse a PDB object from the given slice.

pub fn file_format(&self) -> FileFormat[src]

The container file format, which is always FileFormat::Pdb.

pub fn code_id(&self) -> Option<CodeId>[src]

The code identifier of this object, always None.

PDB files do not contain sufficient information to compute the code identifier, since they are lacking the relevant parts of the PE header.

pub fn debug_id(&self) -> DebugId[src]

The debug information identifier of this PDB.

The PDB stores a specific header that contains GUID and age bits. Additionally, Microsoft uses the file name of the PDB to avoid GUID collisions. In most contexts, however, it is sufficient to rely on the uniqueness of the GUID to identify a PDB.

The same information is also stored in a header in the corresponding PE file, which can be used to locate a PDB from a PE.

pub fn arch(&self) -> Arch[src]

The CPU architecture of this object, as specified in the debug information stream (DBI).

pub fn kind(&self) -> ObjectKind[src]

The kind of this object, which is always Debug.

pub fn load_address(&self) -> u64[src]

The address at which the image prefers to be loaded into memory.

The PDB only stores relative addresses, and more importantly, does not provide sufficient information to compute the original PE's load address. The according PE, however does feature a load address (called image_base). See PeObject::load_address for more information.

pub fn has_symbols(&self) -> bool[src]

Determines whether this object exposes a public symbol table.

pub fn symbols(&self) -> PdbSymbolIterator<'d>[src]

Returns an iterator over symbols in the public symbol table.

pub fn symbol_map(&self) -> SymbolMap<'d>[src]

Returns an ordered map of symbols in the symbol table.

pub fn has_debug_info(&self) -> bool[src]

Determines whether this object contains debug information.

pub fn has_sources(&self) -> bool[src]

Determines whether this object contains embedded source.

pub fn debug_session(&self) -> Result<PdbDebugSession<'d>, PdbError>[src]

Constructs a debugging session.

pub fn has_unwind_info(&self) -> bool[src]

Determines whether this object contains stack unwinding information.

pub fn data(&self) -> &'d [u8][src]

Returns the raw data of the ELF file.

Trait Implementations

impl<'slf, 'd> AsSelf<'slf> for PdbObject<'d> where
    'd: 'slf, 
[src]

type Ref = PdbObject<'slf>

The Self type with 'slf lifetimes, returned by as_self.

impl<'_> Debug for PdbObject<'_>[src]

impl<'d> ObjectLike for PdbObject<'d>[src]

type Error = PdbError

Errors thrown when reading information from this object.

type Session = PdbDebugSession<'d>

A session that allows optimized access to debugging information.

impl<'_> Send for PdbObject<'_>[src]

impl<'_> Sync for PdbObject<'_>[src]

Auto Trait Implementations

impl<'d> !RefUnwindSafe for PdbObject<'d>

impl<'d> Unpin for PdbObject<'d>

impl<'d> !UnwindSafe for PdbObject<'d>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.