classDiagram
class StateAnalyticsProperties{
+int depth
+int visitedAfterLastFork
+int visitedBeforeLastFork
+int stmtsSinceLastCovered
+ExecutionState? parent
+long executingTime
+double reward
+List~Double~ features
-boolean isFork
-boolean isVisitedNew
-int successorDepth
-int successorVisitedAfterLastFork
-int successorVisitedBeforeLastFork
-int successorStmtSinceLastCovered
+updateIsVisitedNew()
+updateIsFork()
}
ExecutionState o-- StateAnalyticsProperties
StateAnalyticsProperties maintains properties of ExecutionState, which don't need for symbolic execution, but need for JLearch.
depth: Int- number of forks on the state's path excluded current state, if it is fork. In this case, fork is a state with more than one successor excluded implicitNPEbranches.visitedAfterLastFork: Int- number ofstmt, that was visited bystateson this state's path after the last fork in first time.visitedBeforeLastFork: Int- number ofstmt, that was visited bystateson this state's path before the last fork in first time.stmtsSinceLastCovered: Int- number ofstateson this state's path after the last state that visited anystmtin first time.parent: ExecutionState?- parent of currentstate. IfUtSettings.featureProcess == false, then it is always null, because we don't need this field in this case. If it is not null, then we can't deletestateuntil all successors of this state will be deleted, which may cause memory issue.executingTime: Long- amount of time, during which this state was traversed.reward: Double?- calculated reward of this statefeatures: List<Double>- list of extracted features for this state
Field with successor prefix is used for a constructor of successor properties.
updateIsFork()- setisForkon true. This method is called when traversing ofstmtproduces more than one explicit state. Now it may be during the traversing ofIfStmt,SwitchStmt,AssignStmtorInvokeStmt.updateIsCoveredNew()- setisVisitedNewon true, setstmtsSinceLastCoveredon zero and increasevisitedAfterLastForkon 1. This method is called inUtBotSymbolicEngineafter new statesis polled ands.stmtwas not visited yet.