[klee-dev] Why no BFS?

Cristian Cadar c.cadar at imperial.ac.uk
Tue Apr 23 13:58:01 BST 2013


Hi Loi,

There is not reason not to have BFS in KLEE, and we would be happy to 
add support for this: just send your patch for review to the 
klee-commits mailing list.

This was never a priority because, as Paul mentioned, KLEE has more 
advanced heuristics, including one that actively favors uncovered code. 
  For a proper comparison, you should run more benchmarks for a longer 
amount of time, as Paul suggested (and also make sure you eliminate any 
significant sources of non-determinism).

Best,
Cristian

On 23/04/13 13:45, Paul Marinescu wrote:
> Hello Loi,
> In general, given limited resources, BFS will only explore shallow
> states (parsing inputs), while ideally you want to explore the whole
> program.
>
> The stats that you get are a bit dodgy. The fact that you explore the
> entire state space with respect to the symbolic input chosen (are you
> using any symbolic input?), but you get different #Inst and Cov% with
> your BFS searcher doesn't make sense.
>
> Finally, stats for a 0.04s execution are not representative for symbolic
> execution. Use 1h runs for a compelling comparison.
>
> Paul
>
> On 23/04/13 12:58, Loi Luu wrote:
>> Hello Paul,
>>
>> I got this one:
>>
>> | Path      | Instrs   | Time(s) | ICov(%) | BCov(%) | ICount |
>> TSolver(%) | States | maxStates | avgStates | Mem(MB) | maxMem(MB) |
>> avgMem(MB) | Queries | AvgQC | Tcex(%) | Tfork(%) |
>> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> | klee-last |  15428 |    0.03  |    7.12    |    4.24   |  29019  |
>>    2.36    |      0   |         0       |      0.00    |   26.62 |
>>   26.62               |      26.47      |       1  |    15      |
>>   2.19    |     0.00 |
>>
>> This is still not as good as BFS result. And I want to emphasis again
>> the question is why no BFS?
>>
>> Thanks,
>>
>>
>>
>> On Tue, Apr 23, 2013 at 6:33 PM, Paul Marinescu
>> <paul.marinescu at imperial.ac.uk <mailto:paul.marinescu at imperial.ac.uk>>
>> wrote:
>>
>>     Hello Loi,
>>     DFS is not the default searcher for a few months now. What results
>>     do you get with no --search argument?
>>
>>     Paul
>>
>>
>>     On 23/04/13 12:03, Loi Luu wrote:
>>
>>         Dear all,
>>
>>         I just added bfs-searcher to klee and make some comparisons
>>         between DFS
>>         (which is default searcher now) and BFS. Surprisingly, the
>>         result for
>>         branch coverage and instruction coverage of BFS are better in
>>         some cases
>>         and equally good in almost all cases than that of DFS.
>>
>>         For example, in the *stat *in coreutils 6.11:
>>
>>         with --search=bfs
>>         | Path          | Instrs   | Time(s) | ICov(%) | BCov(%) |
>> ICount |
>>         TSolver(%) | States | maxStates | avgStates | Mem(MB) |
>> maxMem(MB) |
>>         avgMem(MB) | Queries | AvgQC | Tcex(%) | Tfork(%) |
>>
>> ------------------------------__------------------------------__------------------------------__------------------------------__------------------------------__------------------------------__----
>>
>>         | klee-out-10 |  21801 |    0.04   |   15.34 |    9.99     |
>>           29019 |
>>               1.49    |      0    |         0         |      0.00 |
>> 26.64
>>            |      26.64        |         26.47             |       1
>> |    15
>>             |    1.37    |     0.00 |
>>
>>         with --search=dfs
>>
>>         | Path          | Instrs   | Time(s) | ICov(%) | BCov(%) |
>> ICount |
>>         TSolver(%) | States | maxStates | avgStates | Mem(MB) |
>> maxMem(MB) |
>>         avgMem(MB) | Queries | AvgQC | Tcex(%) | Tfork(%) |
>>
>> ------------------------------__------------------------------__------------------------------__------------------------------__------------------------------__------------------------------__--
>>
>>         | klee-last     |  15356 |    0.03   |    7.12  |    4.24     |
>>           29019 |
>>                 1.90    |      0    |         0      |      0.00    |
>>         26.61
>>         |      26.61     |      26.46               |       1   |    15
>>               |
>>            1.75  |     0.00 |
>>
>>
>>         The difference of state space is pretty small, so is there any
>>         reason
>>         that BFS is not included in Klee?
>>
>>         Thanks,
>>         --
>>         Loi, Luu The (Mr.)
>>         University of  Engineering and Technology, Vietnam National
>>         University,
>>         Hanoi.
>>
>>
>>         _________________________________________________
>>         klee-dev mailing list
>>         klee-dev at imperial.ac.uk <mailto:klee-dev at imperial.ac.uk>
>>         https://mailman.ic.ac.uk/__mailman/listinfo/klee-dev
>>         <https://mailman.ic.ac.uk/mailman/listinfo/klee-dev>
>>
>>
>>
>>     _________________________________________________
>>     klee-dev mailing list
>>     klee-dev at imperial.ac.uk <mailto:klee-dev at imperial.ac.uk>
>>     https://mailman.ic.ac.uk/__mailman/listinfo/klee-dev
>>     <https://mailman.ic.ac.uk/mailman/listinfo/klee-dev>
>>
>>
>>
>>
>> --
>> Loi, Luu The (Mr.)
>> University of  Engineering and Technology, Vietnam National University,
>> Hanoi.
>
>
> _______________________________________________
> klee-dev mailing list
> klee-dev at imperial.ac.uk
> https://mailman.ic.ac.uk/mailman/listinfo/klee-dev




More information about the klee-dev mailing list