Closed rasoolmaghareh closed 1 year ago
After fixing the issue #392, ie., by adding the check for null expr
in TxWeakestPreCondition::getBinaryInst()
,
this issue also got resolved.
WP output:
************Basic Block Coverage Report Starts****************
KLEE: done: Total number of single time Visited Basic Blocks: 15
KLEE: done: Total number of Basic Blocks: 17
************Basic Block Coverage Report Ends****************
************ICMP/Atomic Condition Coverage Report Starts****************
KLEE: done: Total number of Covered ICMP/Atomic Condition: 5
KLEE: done: Total number of All ICMP/Atomic Condition: 5
************ICMP/Atomic Condition Coverage Report Ends****************
KLEE: Memory cap NOT exceeded!
KLEE: done: Total reduced symbolic execution tree nodes = 15
KLEE: done: Total number of visited basic blocks = 39
KLEE: done: Subsumption statistics
KLEE: done: Time for actual solver calls in subsumption check (ms) = 237.123
KLEE: done: Number of solver calls for subsumption check (failed) = 10 (8)
KLEE: done: Concrete store expression build time (ms) = 0.096
KLEE: done: Symbolic store expression build time (ms) = 0
KLEE: done: Solver access time (ms) = 260.787
KLEE: done: Average table entries per subsumption checkpoint = 1.85
KLEE: done: Number of subsumption checks = 15
KLEE: done: Average solver calls per subsumption check = 0.66
KLEE: done: TxTree method execution times (ms):
KLEE: done: setCurrentINode = 0.162
KLEE: done: remove = 38.895
KLEE: done: subsumptionCheck = 261.225
KLEE: done: markPathCondition = 0.074
KLEE: done: split = 0.059
KLEE: done: executeOnNode = 0.143
KLEE: done: executeMemoryOperation = 0.896
KLEE: done: TxTreeNode method execution times (ms):
KLEE: done: getInterpolant = 0.077
KLEE: done: get WP Interpolant = 32.481
KLEE: done: addConstraintTime = 0.11
KLEE: done: splitTime = 0.047
KLEE: done: execute = 0.132
KLEE: done: bindCallArguments = 0.018
KLEE: done: bindReturnValue = 0.008
KLEE: done: getStoredExpressions = 0.032
KLEE: done: getStoredCoreExpressions = 0.146
KLEE: done: total instructions = 312
KLEE: done: completed paths = 8, among which
KLEE: done: early-terminating paths (instruction time limit, solver timeout, max-depth reached) = 0
KLEE: done: average branching depth of completed paths = 3
KLEE: done: average branching depth of subsumed paths = 3
KLEE: done: average instructions of completed paths = 111.5
KLEE: done: average instructions of subsumed paths = 93.5
KLEE: done: subsumed paths = 2
KLEE: done: error paths = 0
KLEE: done: program exit paths = 6
KLEE: done: generated tests = 0, among which
KLEE: done: early-terminating tests (instruction time limit, solver timeout, max-depth reached) = 0
KLEE: done: error tests = 0
KLEE: done: program exit tests = 0
KLEE: done: NOTE:
KLEE: done: Subsumed paths / tests counts are nondeterministic for
KLEE: done: programs with dynamically-allocated memory such as those
KLEE: done: using malloc, since KLEE may reuse the address of the
KLEE: done: same malloc calls in different paths. This nondeterminism
KLEE: done: does not cause loss of error reports.
'local-3' already present. Replacing with a new folder
---------------------------------------------------------------------------------
| Path | Instrs| Time(s)| ICov(%)| BCov(%)| ICount| TSolver(%)|
---------------------------------------------------------------------------------
|local-3/klee-out-0| 312| 0.31| 32.82| 9.46| 393| 2.50|
---------------------------------------------------------------------------------
Deletion Output:
************Basic Block Coverage Report Starts****************
KLEE: done: Total number of single time Visited Basic Blocks: 15
KLEE: done: Total number of Basic Blocks: 17
************Basic Block Coverage Report Ends****************
************ICMP/Atomic Condition Coverage Report Starts****************
KLEE: done: Total number of Covered ICMP/Atomic Condition: 5
KLEE: done: Total number of All ICMP/Atomic Condition: 5
************ICMP/Atomic Condition Coverage Report Ends****************
KLEE: Memory cap NOT exceeded!
KLEE: done: Total reduced symbolic execution tree nodes = 15
KLEE: done: Total number of visited basic blocks = 39
KLEE: done: Subsumption statistics
KLEE: done: Time for actual solver calls in subsumption check (ms) = 76.236
KLEE: done: Number of solver calls for subsumption check (failed) = 10 (8)
KLEE: done: Concrete store expression build time (ms) = 0.064
KLEE: done: Symbolic store expression build time (ms) = 0.002
KLEE: done: Solver access time (ms) = 86.77
KLEE: done: Average table entries per subsumption checkpoint = 1.85
KLEE: done: Number of subsumption checks = 15
KLEE: done: Average solver calls per subsumption check = 0.66
KLEE: done: TxTree method execution times (ms):
KLEE: done: setCurrentINode = 0.254
KLEE: done: remove = 0.281
KLEE: done: subsumptionCheck = 86.929
KLEE: done: markPathCondition = 0.046
KLEE: done: split = 0.061
KLEE: done: executeOnNode = 0.176
KLEE: done: executeMemoryOperation = 1.134
KLEE: done: TxTreeNode method execution times (ms):
KLEE: done: getInterpolant = 0.051
KLEE: done: addConstraintTime = 0.169
KLEE: done: splitTime = 0.049
KLEE: done: execute = 0.158
KLEE: done: bindCallArguments = 0.038
KLEE: done: bindReturnValue = 0.011
KLEE: done: getStoredExpressions = 0.022
KLEE: done: getStoredCoreExpressions = 0.092
KLEE: done: total instructions = 312
KLEE: done: completed paths = 8, among which
KLEE: done: early-terminating paths (instruction time limit, solver timeout, max-depth reached) = 0
KLEE: done: average branching depth of completed paths = 3
KLEE: done: average branching depth of subsumed paths = 3
KLEE: done: average instructions of completed paths = 111.5
KLEE: done: average instructions of subsumed paths = 93.5
KLEE: done: subsumed paths = 2
KLEE: done: error paths = 0
KLEE: done: program exit paths = 6
KLEE: done: generated tests = 0, among which
KLEE: done: early-terminating tests (instruction time limit, solver timeout, max-depth reached) = 0
KLEE: done: error tests = 0
KLEE: done: program exit tests = 0
KLEE: done: NOTE:
KLEE: done: Subsumed paths / tests counts are nondeterministic for
KLEE: done: programs with dynamically-allocated memory such as those
KLEE: done: using malloc, since KLEE may reuse the address of the
KLEE: done: same malloc calls in different paths. This nondeterminism
KLEE: done: does not cause loss of error reports.
---------------------------------------------------------------------------------
| Path | Instrs| Time(s)| ICov(%)| BCov(%)| ICount| TSolver(%)|
---------------------------------------------------------------------------------
|local-2/klee-out-0| 312| 0.11| 32.82| 9.46| 393| 10.44|
---------------------------------------------------------------------------------
Commit 60c20f9 fixes the issue.
This is the output that I am seeing: