Struct symbolic_debuginfo::pdb::PdbObject [−][src]
Program Database, the debug companion format on Windows.
This object is a sole debug companion to PeObject
.
Implementations
impl<'data> PdbObject<'data>
[src]
pub fn test(data: &[u8]) -> bool
[src]
Tests whether the buffer could contain an PDB object.
pub fn parse(data: &'data [u8]) -> Result<Self, 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<'data, '_>ⓘNotable traits for PdbSymbolIterator<'data, 'object>
impl<'data, 'object> Iterator for PdbSymbolIterator<'data, 'object> type Item = Symbol<'data>;
[src]
Notable traits for PdbSymbolIterator<'data, 'object>
impl<'data, 'object> Iterator for PdbSymbolIterator<'data, 'object> type Item = Symbol<'data>;
Returns an iterator over symbols in the public symbol table.
pub fn symbol_map(&self) -> SymbolMap<'data>
[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<'data>, 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) -> &'data [u8]ⓘ
[src]
Returns the raw data of the ELF file.
Trait Implementations
impl<'slf, 'data: 'slf> AsSelf<'slf> for PdbObject<'data>
[src]
type Ref = PdbObject<'slf>
The Self
type with 'slf
lifetimes, returned by as_self
.
fn as_self(&'slf self) -> &Self::Ref
[src]
impl Debug for PdbObject<'_>
[src]
impl<'data: 'object, 'object> ObjectLike<'data, 'object> for PdbObject<'data>
[src]
type Error = PdbError
Errors thrown when reading information from this object.
type Session = PdbDebugSession<'data>
A session that allows optimized access to debugging information.
type SymbolIterator = PdbSymbolIterator<'data, 'object>
The iterator over the symbols in the public symbol table.
fn file_format(&self) -> FileFormat
[src]
fn code_id(&self) -> Option<CodeId>
[src]
fn debug_id(&self) -> DebugId
[src]
fn arch(&self) -> Arch
[src]
fn kind(&self) -> ObjectKind
[src]
fn load_address(&self) -> u64
[src]
fn has_symbols(&self) -> bool
[src]
fn symbols(&'object self) -> Self::SymbolIterator
[src]
fn symbol_map(&self) -> SymbolMap<'data>
[src]
fn has_debug_info(&self) -> bool
[src]
fn debug_session(&self) -> Result<Self::Session, Self::Error>
[src]
fn has_unwind_info(&self) -> bool
[src]
fn has_sources(&self) -> bool
[src]
impl Send for PdbObject<'_>
[src]
impl Sync for PdbObject<'_>
[src]
Auto Trait Implementations
impl<'data> !RefUnwindSafe for PdbObject<'data>
impl<'data> Unpin for PdbObject<'data>
impl<'data> !UnwindSafe for PdbObject<'data>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,