Hi Heinz, 

You may find our paper "Execution Synthesis: A Technique for Automated Software 
Debugging" http://dslab.epfl.ch/pubs/esd of interest in this regard.
 
From what I understand, in your case you may be able to statically decide if a 
given execution state is still able to reach a given line in the code. Once you 
find an execution with property #1, you may be able to use some simple control 
flow static analysis to discard all other states from which property #1 is 
reachable, assuming that the properties are mutually exclusive. 

Cristi
 

On May 15, 2010, at 7:27 PM, Daniel Dunbar wrote:

> Unfortunately no. KLEE has no way to limit it's search to paths which (will 
> eventually) satisfy the predicates.
> 
> Ideally a very smart search strategy would handle this automatically as part 
> of trying to get code coverage, but it is a very hard problem.
> 
> - Daniel
> 
> 
> On Apr 28, 2010, at 6:02, Heinz Riener <hriener at student.tugraz.at> wrote:
> 
>> Dear all,
>> 
>> Currently I'm using KLEE to check whether a program fulfills certain 
>> properties.  Consider the following pseudo code example, where f is a 
>> function and p1, p2, and p3 are predicates using global variables or 
>> values returned from f.
>> 
>>  // a very large program
>>  f(/* symbolic args */);
>> 
>>  // predicate checks
>>  if (p1) {
>>    printf("Property #1 satisfied.");
>>  }
>>  if (p2) {
>>    printf("Property #2 satisfied.");
>>  }
>>  if (p3) {
>>    printf("Property #3 satisfied.");
>>  }
>> 
>> The properties are exclusive such that only one property is true at a 
>> time.  I'm only interested if there is one path that fulfills property 
>> p1, one path that fulfills property p2 and one path that fulfills 
>> property p3.  However, KLEE searches for all feasible execution paths 
>> and thus fulfills each property multiple times, which is a huge 
>> computational waste in my case.  I'm looking for a way to tell KLEE that 
>> each property should be checked only once.
>> 
>> Is there some kind of KLEE instrumentation trick that could assist me? 
>> Can you give me some other advice to make my search task more efficient?
>> 
>> Regards,
>> Heinz
>> _______________________________________________
>> klee-dev mailing list
>> klee-dev at keeda.stanford.edu
>> http://keeda.Stanford.EDU/mailman/listinfo/klee-dev
> _______________________________________________
> klee-dev mailing list
> klee-dev at keeda.stanford.edu
> http://keeda.Stanford.EDU/mailman/listinfo/klee-dev

Reply via email to