Enum minidump_processor::symbols::SymbolError
source · [−]pub enum SymbolError {
NotFound,
MissingDebugFileOrId,
LoadError(Error),
ParseError(&'static str, u64),
}Expand description
Possible results of locating symbols for a module.
Because symbols may be found from different sources, symbol providers
are usually configured to “cascade” into the next one whenever they report
NotFound.
Cascading currently assumes that if any provider finds symbols for a module, all other providers will find the same symbols (if any). Therefore cascading will not be applied if a LoadError or ParseError occurs (because presumably, all the other sources will also fail to load/parse.)
In theory we could do some interesting things where we attempt to be more robust and actually merge together the symbols from multiple sources, but that would make it difficult to cache symbol files, and would rarely actually improve results.
Since symbol files can be on the order of a gigabyte(!) and downloaded from the network, aggressive caching is pretty important. The current approach is a nice balance of simple and effective.
Variants
NotFound
Symbol file could not be found.
In this case other symbol providers may still be able to find it!
MissingDebugFileOrId
The module was lacking either the debug file or debug id, as such the path of the symbol could not be generated.
LoadError(Error)
Symbol file could not be loaded into memory.
ParseError(&'static str, u64)
Symbol file was too corrupt to be parsed at all.
Because symbol files are pretty modular, many corruptions/ambiguities can be either repaired or discarded at a fairly granular level (e.g. a bad STACK WIN line can be discarded without affecting anything else). But sometimes we can’t make any sense of the symbol file, and you find yourself here.
Trait Implementations
sourceimpl Debug for SymbolError
impl Debug for SymbolError
sourceimpl Display for SymbolError
impl Display for SymbolError
sourceimpl Error for SymbolError
impl Error for SymbolError
sourcefn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more
sourcefn backtrace(&self) -> Option<&Backtrace>
fn backtrace(&self) -> Option<&Backtrace>
backtrace)Returns a stack backtrace, if available, of where this error occurred. Read more
1.0.0 · sourcefn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
sourceimpl From<Error> for SymbolError
impl From<Error> for SymbolError
sourcefn from(source: Error) -> SymbolError
fn from(source: Error) -> SymbolError
Converts to this type from the input type.
sourceimpl PartialEq<SymbolError> for SymbolError
impl PartialEq<SymbolError> for SymbolError
Auto Trait Implementations
impl !RefUnwindSafe for SymbolError
impl Send for SymbolError
impl Sync for SymbolError
impl Unpin for SymbolError
impl !UnwindSafe for SymbolError
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more