#[non_exhaustive]pub enum AnalyzerError<H: HandleControlFlow, R: ReadMemory> {
ControlFlowHandler(H::Error),
MemoryReader(R::Error),
InvalidInstruction,
CorruptedCallstack,
InvalidPacket,
UnsupportedReturnCompression,
ExceededTntBuffer,
Unexpected,
}Expand description
Error for edge analysis
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
ControlFlowHandler(H::Error)
Control flow handler error
MemoryReader(R::Error)
Memory reader error
InvalidInstruction
Instructions non-decodable by iced-x86
CorruptedCallstack
Corrupted callstack, will affect the behavior of return compression
InvalidPacket
Semantic-level invalid packet
UnsupportedReturnCompression
Return compression is not supported since we need to maintain the callstack in the cache, which is very hard to design a efficient way
ExceededTntBuffer
TNT buffer exceeded.
This is unexpected, and may occur when we re-inject TNT buffers into manager when a deferred TIP is detected
Unexpected
Unexpected edge analyzer error
Trait Implementations§
Source§impl<H: HandleControlFlow, R: ReadMemory> Debug for AnalyzerError<H, R>
impl<H: HandleControlFlow, R: ReadMemory> Debug for AnalyzerError<H, R>
Source§impl<H: HandleControlFlow, R: ReadMemory> Display for AnalyzerError<H, R>
impl<H: HandleControlFlow, R: ReadMemory> Display for AnalyzerError<H, R>
Source§impl<H: HandleControlFlow, R: ReadMemory> Error for AnalyzerError<H, R>
impl<H: HandleControlFlow, R: ReadMemory> Error for AnalyzerError<H, R>
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
Auto Trait Implementations§
impl<H, R> Freeze for AnalyzerError<H, R>
impl<H, R> RefUnwindSafe for AnalyzerError<H, R>
impl<H, R> Send for AnalyzerError<H, R>
impl<H, R> Sync for AnalyzerError<H, R>
impl<H, R> Unpin for AnalyzerError<H, R>
impl<H, R> UnwindSafe for AnalyzerError<H, R>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more