More specifically, in Executor.cpp function fork() line 
941(https://github.com/klee/klee/blob/fc50ab32349a4cc61980ba5b97bfa7c3961ce964/lib/Core/Executor.cpp#L941)
 KLEE will always check the satisfiability at first, then KLEE check whether 
reach max fork limit until line 
975(https://github.com/klee/klee/blob/fc50ab32349a4cc61980ba5b97bfa7c3961ce964/lib/Core/Executor.cpp#L975)
 That is the point I don’t understand.

Thanks for any help!

From: <klee-dev-boun...@imperial.ac.uk> on behalf of XIE Xuan 
<lebron...@outlook.com>
Date: Monday, May 25, 2020 at 11:32 AM
To: "klee-dev@imperial.ac.uk" <klee-dev@imperial.ac.uk>
Subject: [klee-dev] Why KLEE still symbolic executing program after reaching 
max-fork?

Hi all,

I am reading KLEE’s source code and find that if I set “-max-fork=n” when KLEE 
reach its fork limit n, it will still symbolic executing the program. In my 
understanding, when KLEE stops forking, there is no need to invoke SMT solver 
to check which branch is reachable or not, therefore it is also unnecessary to 
symbolic executing the program in order to set up more constraints. Thus I 
would like to know why KLEE not concretely running the program after reaching 
fork limit?

Thanks!
_______________________________________________
klee-dev mailing list
klee-dev@imperial.ac.uk
https://mailman.ic.ac.uk/mailman/listinfo/klee-dev

Reply via email to