Enum breakpad_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§
source§impl Debug for SymbolError
impl Debug for SymbolError
source§impl Display for SymbolError
impl Display for SymbolError
source§impl Error for SymbolError
impl Error for SymbolError
source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
source§impl From<Error> for SymbolError
impl From<Error> for SymbolError
source§impl PartialEq for SymbolError
impl PartialEq for SymbolError
source§fn eq(&self, other: &SymbolError) -> bool
fn eq(&self, other: &SymbolError) -> bool
self
and other
values to be equal, and is used
by ==
.