cozy.terminal_state
¶
Module Contents¶
Classes¶
Stores information pertaining specifically to a single SimState. |
|
This class is used to indicate that execution terminated normally in the contained state. |
|
This class is used to indicate that the contained state was killed by the LocalLoopSeer, indicating that an upper |
|
This class is used to indicate that execution failed due to an |
|
This class is used to indicate that execution failed due to an |
|
This class is used to indicate a state that resulted in an error (either my an execution error or |
- class cozy.terminal_state.TerminalState(state: angr.SimState, state_id: int, state_type_str: str)¶
Stores information pertaining specifically to a single SimState.
- Variables:
state (SimState) – The state we are storing information about.
state_id (int) – The index of this particular state in the corresponding list in RunResult. Note that errored states have separate state_ids from deadended states. Therefore a particular input state here is uniquely identified by the pair (state_id, state_tag), not just state_id by itself.
state_type_str (str) – A string representation of the state’s type
- property std_out: bytes¶
The data that has been written to stdout when the program is in this state.
- Getter:
The data written to stdout
- Type:
bytes
- property std_err: bytes¶
The data that has been written to stderr when the program is in this state.
- Getter:
The data written to stderr
- Type:
bytes
- property side_effects: dict[str, list[cozy.side_effect.PerformedSideEffect]]¶
- property virtual_prints: list[cozy.side_effect.PerformedSideEffect]¶
Returns the output of the virtual prints that occurred while reaching this state.
- Getter:
A list of VirtualPrint directives, along with the values they produced.
- Type:
list[tuple[VirtualPrint, claripy.ast.Base]]
- property mem_writes: portion.IntervalDict¶
The memory writes that occurred while reaching this state.
- Getter:
An interval dictionary, with the keys being ranges and the values being tuple[int, frozenset[int]]. The first element of the tuple is a unique placeholder, the second element of the tuple are the possible instruction pointer values that wrote to this memory.
- Type:
P.IntervalDict
- property malloced_names: portion.IntervalDict¶
- concrete_examples(args: any, num_examples=3) list[cozy.concrete.TerminalStateInput] ¶
Concretizes the arguments used to put the program in this singleton state.
- Parameters:
args (any) – The input arguments to concretize. This argument may be a Python datastructure, the concretizer will make a deep copy with claripy symbolic variables replaced with concrete values.
num_examples (int) – The maximum number of concrete examples to generate for this singleton state.
- Returns:
A list of concrete inputs that satisfies the constraints attached to the state.
- Return type:
list[TerminalStateInput]
- class cozy.terminal_state.DeadendedState(state: angr.SimState, state_id: int)¶
Bases:
TerminalState
This class is used to indicate that execution terminated normally in the contained state.
Constructor for DeadendedState
- Variables:
state (SimState) – The state that terminated normally.
state_id (int) – The identifer of the state, determined by its position in the list
cozy.project.RunResult.deadended
- class cozy.terminal_state.SpinningState(state: angr.SimState, state_id: int)¶
Bases:
TerminalState
This class is used to indicate that the contained state was killed by the LocalLoopSeer, indicating that an upper bound on number of loop iterations was reached.
Constructor for SpinningState
- Variables:
state (SimState) – The state that was spinning
state_id (int) – The identifer of the state, determined by its position in the list
cozy.project.RunResult.spinning
- class cozy.terminal_state.AssertFailedState(assertion: cozy.directive.Assert, cond: claripy.ast.bool, failure_state: angr.SimState, state_id: int)¶
Bases:
TerminalState
This class is used to indicate that execution failed due to an
Assert
being satisfiable.- Variables:
assertion (Assert) – The assertion that was triggered.
cond (claripy.ast.bool) – The condition that caused the assertion to trigger
Constructor for AssertFailedState
- Parameters:
assertion (Assert) – The assertion that was triggered.
claripy.ast.bool – The condition which if falsified will trigger the assertion.
failure_state (SimState) – The state that was created to test the assertion.
state_id (int) – The identifier of the state, determined by its position in the list
cozy.project.RunResult.asserts_failed
- class cozy.terminal_state.PostconditionFailedState(postcondition: cozy.directive.Postcondition, cond: claripy.ast.bool, failure_state: angr.SimState, state_id: int)¶
Bases:
TerminalState
This class is used to indicate that execution failed due to an
Assert
being satisfiable.- Variables:
assertion (Assert) – The assertion that was triggered.
cond (claripy.ast.bool) – The condition that caused the assertion to trigger
Constructor for AssertFailedState
- Parameters:
assertion (Postcondition) – The postcondition that was triggered.
claripy.ast.bool – The condition which if falsified will trigger the postcondition assertion.
failure_state (SimState) – The state that was created to test the postcondition assertion.
state_id (int) – The identifier of the state, determined by its position in the list
cozy.project.RunResult.postconditions_failed
- class cozy.terminal_state.ErrorState(error_record: angr.sim_manager.ErrorRecord, state_id: int)¶
Bases:
TerminalState
This class is used to indicate a state that resulted in an error (either my an execution error or
ErrorDirective
).- Variables:
error (SimError) – The error that was thrown.
traceback – The traceback attached to the error.
Constructor for ErrorState
- Parameters:
error_record (ErrorRecord) – The error thrown for this state.
state_id (int) – The identifier of the state, determined by it’s position in the list
cozy.project.RunResult.errored