[−][src]Trait symbolic::debuginfo::ObjectLike
An object containing debug information.
Associated Types
type Error
Errors thrown when reading information from this object.
type Session: DebugSession
A session that allows optimized access to debugging information.
Required methods
fn file_format(&self) -> FileFormat
The container format of this file.
fn code_id(&self) -> Option<CodeId>
The code identifier of this object.
The identifier can be None
if it cannot be determined from the object file, for instance,
because the identifier was stripped in the build process.
fn debug_id(&self) -> DebugId
The debug information identifier of this object.
fn arch(&self) -> Arch
The CPU architecture of this object.
fn kind(&self) -> ObjectKind
The kind of this object.
fn load_address(&self) -> u64
The address at which the image prefers to be loaded into memory.
fn has_symbols(&self) -> bool
Determines whether this object exposes a public symbol table.
fn symbols(&self) -> Box<dyn Iterator<Item = Symbol>>
Returns an iterator over symbols in the public symbol table.
fn symbol_map(&self) -> SymbolMap
Returns an ordered map of symbols in the symbol table.
fn has_debug_info(&self) -> bool
Determines whether this object contains debug information.
fn debug_session(&self) -> Result<Self::Session, Self::Error>
Constructs a debugging session.
A debugging session loads certain information from the object file and creates caches for efficient access to various records in the debug information. Since this can be quite a costly process, try to reuse the debugging session as long as possible.
Constructing this session will also work if the object does not contain debugging
information, in which case the session will be a no-op. This can be checked via
has_debug_info
.
fn has_unwind_info(&self) -> bool
Determines whether this object contains stack unwinding information.
fn has_sources(&self) -> bool
Determines whether this object contains embedded sources.
Implementors
impl<'d> ObjectLike for Object<'d>
[src]
type Error = ObjectError
type Session = ObjectDebugSession<'d>
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 symbol_map(&self) -> SymbolMap
[src]
fn symbols(&self) -> Box<dyn Iterator<Item = Symbol>>
[src]
fn has_debug_info(&self) -> bool
[src]
fn debug_session(
&self
) -> Result<<Object<'d> as ObjectLike>::Session, <Object<'d> as ObjectLike>::Error>
[src]
&self
) -> Result<<Object<'d> as ObjectLike>::Session, <Object<'d> as ObjectLike>::Error>
fn has_unwind_info(&self) -> bool
[src]
fn has_sources(&self) -> bool
[src]
impl<'d> ObjectLike for BreakpadObject<'d>
[src]
type Error = BreakpadError
type Session = BreakpadDebugSession<'d>
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(&self) -> Box<dyn Iterator<Item = Symbol>>
[src]
fn symbol_map(&self) -> SymbolMap
[src]
fn has_debug_info(&self) -> bool
[src]
fn debug_session(
&self
) -> Result<<BreakpadObject<'d> as ObjectLike>::Session, <BreakpadObject<'d> as ObjectLike>::Error>
[src]
&self
) -> Result<<BreakpadObject<'d> as ObjectLike>::Session, <BreakpadObject<'d> as ObjectLike>::Error>
fn has_unwind_info(&self) -> bool
[src]
fn has_sources(&self) -> bool
[src]
impl<'d> ObjectLike for ElfObject<'d>
[src]
type Error = DwarfError
type Session = DwarfDebugSession<'d>
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(&self) -> Box<dyn Iterator<Item = Symbol>>
[src]
fn symbol_map(&self) -> SymbolMap
[src]
fn has_debug_info(&self) -> bool
[src]
fn debug_session(
&self
) -> Result<<ElfObject<'d> as ObjectLike>::Session, <ElfObject<'d> as ObjectLike>::Error>
[src]
&self
) -> Result<<ElfObject<'d> as ObjectLike>::Session, <ElfObject<'d> as ObjectLike>::Error>
fn has_unwind_info(&self) -> bool
[src]
fn has_sources(&self) -> bool
[src]
impl<'d> ObjectLike for MachObject<'d>
[src]
type Error = DwarfError
type Session = DwarfDebugSession<'d>
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(&self) -> Box<dyn Iterator<Item = Symbol>>
[src]
fn symbol_map(&self) -> SymbolMap
[src]
fn has_debug_info(&self) -> bool
[src]
fn debug_session(
&self
) -> Result<<MachObject<'d> as ObjectLike>::Session, <MachObject<'d> as ObjectLike>::Error>
[src]
&self
) -> Result<<MachObject<'d> as ObjectLike>::Session, <MachObject<'d> as ObjectLike>::Error>
fn has_unwind_info(&self) -> bool
[src]
fn has_sources(&self) -> bool
[src]
impl<'d> ObjectLike for PdbObject<'d>
[src]
type Error = PdbError
type Session = PdbDebugSession<'d>
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(&self) -> Box<dyn Iterator<Item = Symbol>>
[src]
fn symbol_map(&self) -> SymbolMap
[src]
fn has_debug_info(&self) -> bool
[src]
fn debug_session(
&self
) -> Result<<PdbObject<'d> as ObjectLike>::Session, <PdbObject<'d> as ObjectLike>::Error>
[src]
&self
) -> Result<<PdbObject<'d> as ObjectLike>::Session, <PdbObject<'d> as ObjectLike>::Error>
fn has_unwind_info(&self) -> bool
[src]
fn has_sources(&self) -> bool
[src]
impl<'d> ObjectLike for PeObject<'d>
[src]
type Error = PeError
type Session = PeDebugSession<'d>
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(&self) -> Box<dyn Iterator<Item = Symbol>>
[src]
fn symbol_map(&self) -> SymbolMap
[src]
fn has_debug_info(&self) -> bool
[src]
fn debug_session(
&self
) -> Result<<PeObject<'d> as ObjectLike>::Session, <PeObject<'d> as ObjectLike>::Error>
[src]
&self
) -> Result<<PeObject<'d> as ObjectLike>::Session, <PeObject<'d> as ObjectLike>::Error>
fn has_unwind_info(&self) -> bool
[src]
fn has_sources(&self) -> bool
[src]
impl<'d> ObjectLike for SourceBundle<'d>
[src]
type Error = SourceBundleError
type Session = SourceBundleDebugSession<'d>
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 symbol_map(&self) -> SymbolMap
[src]
fn symbols(&self) -> Box<dyn Iterator<Item = Symbol>>
[src]
fn has_debug_info(&self) -> bool
[src]
fn debug_session(
&self
) -> Result<<SourceBundle<'d> as ObjectLike>::Session, <SourceBundle<'d> as ObjectLike>::Error>
[src]
&self
) -> Result<<SourceBundle<'d> as ObjectLike>::Session, <SourceBundle<'d> as ObjectLike>::Error>