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