Toggle Light / Dark / Auto color theme
Toggle table of contents sidebar
Source code for angr.errors
# pylint:disable=missing-class-docstring
[docs] class AngrError ( Exception ):
pass
[docs] class AngrValueError ( AngrError , ValueError ):
pass
[docs] class AngrLifterError ( AngrError ):
pass
[docs] class AngrExitError ( AngrError ):
pass
[docs] class AngrPathError ( AngrError ):
pass
[docs] class AngrVaultError ( AngrError ):
pass
[docs] class PathUnreachableError ( AngrPathError ):
pass
[docs] class SimulationManagerError ( AngrError ):
pass
[docs] class AngrInvalidArgumentError ( AngrError ):
pass
[docs] class AngrSurveyorError ( AngrError ):
pass
[docs] class AngrAnalysisError ( AngrError ):
pass
[docs] class AngrBladeError ( AngrError ):
pass
[docs] class AngrBladeSimProcError ( AngrBladeError ):
pass
[docs] class AngrAnnotatedCFGError ( AngrError ):
pass
[docs] class AngrBackwardSlicingError ( AngrError ):
pass
[docs] class AngrGirlScoutError ( AngrError ):
pass
[docs] class AngrCallableError ( AngrSurveyorError ):
pass
[docs] class AngrCallableMultistateError ( AngrCallableError ):
pass
[docs] class AngrSyscallError ( AngrError ):
pass
[docs] class AngrSimOSError ( AngrError ):
pass
[docs] class AngrAssemblyError ( AngrError ):
pass
[docs] class AngrTypeError ( AngrError , TypeError ):
pass
[docs] class AngrMissingTypeError ( AngrTypeError ):
pass
# Congruency check failure
[docs] class AngrIncongruencyError ( AngrAnalysisError ):
pass
#
# ForwardAnalysis errors
#
[docs] class AngrForwardAnalysisError ( AngrError ):
pass
[docs] class AngrSkipJobNotice ( AngrForwardAnalysisError ):
pass
[docs] class AngrDelayJobNotice ( AngrForwardAnalysisError ):
pass
[docs] class AngrJobMergingFailureNotice ( AngrForwardAnalysisError ):
pass
[docs] class AngrJobWideningFailureNotice ( AngrForwardAnalysisError ):
pass
#
# CFG errors
#
[docs] class AngrCFGError ( AngrError ):
pass
#
# VFG Errors and notices
#
[docs] class AngrVFGError ( AngrError ):
pass
[docs] class AngrVFGRestartAnalysisNotice ( AngrVFGError ):
pass
#
# Data graph errors
#
[docs] class AngrDataGraphError ( AngrAnalysisError ):
# TODO: deprecated
pass
[docs] class AngrDDGError ( AngrAnalysisError ):
pass
#
# Loop analysis
#
[docs] class AngrLoopAnalysisError ( AngrAnalysisError ):
pass
#
# Exploration techniques
#
[docs] class AngrExplorationTechniqueError ( AngrError ):
pass
[docs] class AngrExplorerError ( AngrExplorationTechniqueError ):
pass
[docs] class AngrDirectorError ( AngrExplorationTechniqueError ):
pass
[docs] class AngrTracerError ( AngrExplorationTechniqueError ):
pass
#
# VariableRecovery errors
#
[docs] class AngrVariableRecoveryError ( AngrAnalysisError ):
pass
#
# AngrDB errors
#
[docs] class AngrDBError ( AngrError ):
pass
[docs] class AngrCorruptDBError ( AngrDBError ):
pass
[docs] class AngrIncompatibleDBError ( AngrDBError ):
pass
#
# Tracer
#
[docs] class TracerEnvironmentError ( AngrError ):
pass
#
# Simulation errors
#
[docs] class SimError ( Exception ):
bbl_addr = None
stmt_idx = None
ins_addr = None
executed_instruction_count = None
guard = None
[docs] def record_state ( self , state ):
self . bbl_addr = state . scratch . bbl_addr
self . stmt_idx = state . scratch . stmt_idx
self . ins_addr = state . scratch . ins_addr
self . executed_instruction_count = state . history . recent_instruction_count
self . guard = state . scratch . guard
return self
#
# State-related errors
#
[docs] class SimStateError ( SimError ):
pass
[docs] class SimMergeError ( SimStateError ):
pass
[docs] class SimMemoryError ( SimStateError ):
pass
[docs] class SimMemoryMissingError ( SimMemoryError ):
[docs] def __init__ ( self , missing_addr , missing_size , * args ):
super () . __init__ ( missing_addr , missing_size , * args )
self . missing_addr = missing_addr
self . missing_size = missing_size
[docs] class SimAbstractMemoryError ( SimMemoryError ):
pass
[docs] class SimRegionMapError ( SimMemoryError ):
pass
[docs] class SimMemoryLimitError ( SimMemoryError ):
pass
[docs] class SimMemoryAddressError ( SimMemoryError ):
pass
[docs] class SimFastMemoryError ( SimMemoryError ):
pass
[docs] class SimEventError ( SimStateError ):
pass
[docs] class SimPosixError ( SimStateError ):
pass
[docs] class SimFilesystemError ( SimError ):
pass
[docs] class SimSymbolicFilesystemError ( SimFilesystemError ):
pass
[docs] class SimFileError ( SimMemoryError , SimFilesystemError ):
pass
[docs] class SimHeapError ( SimStateError ):
pass
#
# Error class during VEX parsing
#
[docs] class SimUnsupportedError ( SimError ):
pass
#
# Solver-related errors
#
[docs] class SimSolverError ( SimError ):
pass
[docs] class SimSolverModeError ( SimSolverError ):
pass
[docs] class SimSolverOptionError ( SimSolverError ):
pass
[docs] class SimValueError ( SimSolverError ):
pass
[docs] class SimUnsatError ( SimValueError ):
pass
#
# SimIROp errors
#
[docs] class SimOperationError ( SimError ):
pass
[docs] class UnsupportedIROpError ( SimOperationError , SimUnsupportedError ):
pass
#
# SimIRExpr errors
#
[docs] class SimExpressionError ( SimError ):
pass
[docs] class UnsupportedIRExprError ( SimExpressionError , SimUnsupportedError ):
pass
[docs] class SimCCallError ( SimExpressionError ):
pass
[docs] class UnsupportedCCallError ( SimCCallError , SimUnsupportedError ):
pass
[docs] class SimUninitializedAccessError ( SimExpressionError ):
[docs] def __init__ ( self , expr_type , expr ):
SimExpressionError . __init__ ( self )
self . expr_type = expr_type
self . expr = expr
def __repr__ ( self ):
return f "SimUninitializedAccessError (expr { self . expr } is used as { self . expr_type } )"
def __reduce__ ( self ):
return ( SimUninitializedAccessError , ( self . expr_type , self . expr ))
#
# SimIRStmt errors
#
[docs] class SimStatementError ( SimError ):
pass
[docs] class UnsupportedIRStmtError ( SimStatementError , SimUnsupportedError ):
pass
[docs] class UnsupportedDirtyError ( UnsupportedIRStmtError , SimUnsupportedError ):
pass
[docs] class SimMissingTempError ( SimValueError , IndexError ):
pass
#
# Engine-related errors
#
[docs] class SimEngineError ( SimError ):
pass
[docs] class SimIRSBError ( SimEngineError ):
pass
[docs] class SimTranslationError ( SimEngineError ):
pass
[docs] class SimProcedureError ( SimEngineError ):
pass
[docs] class SimProcedureArgumentError ( SimProcedureError ):
pass
[docs] class SimShadowStackError ( SimProcedureError ):
pass
[docs] class SimFastPathError ( SimEngineError ):
pass
[docs] class SimIRSBNoDecodeError ( SimIRSBError ):
pass
[docs] class AngrUnsupportedSyscallError ( AngrSyscallError , SimProcedureError , SimUnsupportedError ):
pass
UnsupportedSyscallError = AngrUnsupportedSyscallError
[docs] class SimReliftException ( SimEngineError ):
[docs] def __init__ ( self , state ):
super () . __init__ ()
self . state = state
#
# SimSlicer errors
#
[docs] class SimSlicerError ( SimError ):
pass
#
# SimAction errors
#
[docs] class SimActionError ( SimError ):
pass
#
# SimCC errors
#
[docs] class SimCCError ( SimError ):
pass
#
# UCManager errors
#
[docs] class SimUCManagerError ( SimError ):
pass
[docs] class SimUCManagerAllocationError ( SimUCManagerError ):
pass
#
# SimUnicorn errors
#
[docs] class SimUnicornUnsupport ( SimError ):
pass
[docs] class SimUnicornError ( SimError ):
pass
[docs] class SimUnicornSymbolic ( SimError ):
pass
#
# Call-stack Errors
#
[docs] class SimEmptyCallStackError ( SimError ):
pass
#
# SimStateOptions Errors
#
[docs] class SimStateOptionsError ( SimError ):
pass
#
# Errors that may be handled by exception handling
#
[docs] class SimException ( SimError ):
pass
[docs] class SimSegfaultException ( SimException , SimMemoryError ):
[docs] def __init__ ( self , addr , reason , original_addr = None ):
self . addr = addr
self . reason = reason
self . original_addr = original_addr
super ( SimSegfaultError , self ) . __init__ ( f " { addr : #x } ( { reason } )" )
def __repr__ ( self ):
return "SimSegfaultException( {:#x} ( {}{} )" . format (
self . addr ,
self . reason ,
( ", original %s " % self . original_addr . __repr__ ( max_depth = 3 )) if self . original_addr is not None else "" ,
)
def __reduce__ ( self ):
return ( SimSegfaultException , ( self . addr , self . reason , self . original_addr ))
SimSegfaultError = SimSegfaultException
[docs] class SimZeroDivisionException ( SimException , SimOperationError ):
pass
[docs] class AngrNoPluginError ( AngrError ):
pass
#
# Concrete Targets Execution errors
#
[docs] class SimConcreteMemoryError ( AngrError ):
pass
[docs] class SimConcreteRegisterError ( AngrError ):
pass
[docs] class SimConcreteBreakpointError ( AngrError ):
pass
#
# Decompiler errors
#
[docs] class UnsupportedNodeTypeError ( AngrError , NotImplementedError ):
pass