Public Methods | |
BirTrace (TransSystem system) | |
BirTrace (TransSystem system, java.util.List l) | |
void | addTrans (Transformation trans) |
void | done () |
String | evalExpr (Expr expr, int stateIndex) |
int | getNumActions () |
BirState | getState (int stateIndex) |
TransSystem | getTransSystem () |
TransVector | getTransVector () |
Action | getTrapAction () |
String | getTrapName () |
Transformation | getTrapTrans () |
boolean | isComplete () |
boolean | isDepthExceeded () |
boolean | isLimitViolation () |
boolean | isOutOfMemory () |
boolean | isVectorExceeded () |
boolean | isVerified () |
void | print (boolean showStates) |
void | setChoice (int actionNum, int choiceNum) |
void | setDepthExceeded () |
void | setOutOfMemory () |
void | setTrap (String trapName, Transformation trapTrans, int actionNum) |
void | setVectorExceeded () |
void | setVerified (boolean verified) |
Private Methods | |
void | processTrail (java.util.List l) |
Private Attributes | |
boolean | verified |
boolean | completed |
boolean | limitviolation |
boolean | outofmemory |
boolean | depthexceeded |
boolean | vectorexceeded |
TransSystem | system |
TransVector | transVector = new TransVector() |
Vector | choiceVector = new Vector() |
String | trapName |
Transformation | currentTrans |
Transformation | trapTrans |
int | trapActionNum |
int | numActions = 0 |
BirState[] | state |
A BIR trace is constructed by a translator after parsing the output of a verifier and interpretting it as a sequence of transitions through the BIR transition system. The trace may end with a trap (e.g., NullPointerException).
Traps indicate run-time errors in the program or that fixed resource bounds on the model have been exceeded. There are three such traps :
In addition to the transformations, the constructor of the trace must specify certain CHOICES made by actions in the trace:
The trace can be queried to determine if the check:
isVerified()
) !isVerified()
) isLimitViolation()
) !isComplete()
)
Definition at line 85 of file BirTrace.java.
|
Add a transformation to the end of the trace. Definition at line 119 of file BirTrace.java. Referenced by SmvTrans::parseThreadStep(), and processTrail().
|
|
Run simulator to complete construction of trace. Definition at line 130 of file BirTrace.java. Referenced by SmvTrans::parseOutput(), DSpinTrans::parseOutput(), and processTrail().
|
|
Parse a line of the spin simulator output, possibly adding a transform to the trace. Most of the lines (generated by spin) we ignore, but the PROMELA contains special print statements that generate lines containing the strings "BIR: L T A S" or "BIR? A C". The string "BIR: L T A S" is printed when executing an action: L is the location number, T is the index of the transform out of that location, A is the index of the action in the transform (0 is the guard, the actions begin with 1), and S is the status of the action (usually OK, but may be a trap name). The string "BIR? A C" is printed when an action makes a choice (e.g., choose expression): A is the action index (the transformation is assumed to be the last one for which a "BIR: ..." was seen), and C is an integer representing the choice. Definition at line 229 of file BirTrace.java. |
|
Set the choice number of the given action of the current transformation. Definition at line 276 of file BirTrace.java. Referenced by processTrail().
|
|
Set the trap info for the trace. Definition at line 295 of file BirTrace.java. Referenced by SmvTrans::parseTrap(), and processTrail().
|