Hi Hemind, Sorry for the slow reply.
On Wed, Dec 2, 2009 at 9:33 AM, Heming Cui <hc2428 at columbia.edu> wrote: > Hi Daniel, > > Hope you had a great thanksgiving.? I'm Junfeng's student Heming. > I am using Klee on a research project and got stuck with an error. > I'm wondering if you can shed some light on it. > > The problem seems to be that Klee doesn't handle the clone() system > call.? Is it the case? Correct, you will probably see something in the log about clone() being handled as an external call. That means it is calling the actual clone() on the system, and that isn't going to work well at all. > The symptoms I got is as follows.? I ran a program that does fork() > with Klee and it all worked fine.? However, after I used clone() > without the CLONE_VM flag (i.e., no address space sharing), Klee output > "failed external call: clone."? If I added the CLONE_VM flag, > Klee crashed. > > I attached a minimal testcase that can demonstrate the above error. > There is a "#define?FLAG" that can turn on or off CLONE_VM. > I'd appreciate if you could look at this error and let me know if > there is a workaround/how I can modify Klee to fix the error. If you really need clone() to work, you would have to implement it in KLEE. Depending on your requirements, that might not be particularly difficult, since we already have the facility for creating a copy of a state / process. However, we don't internally maintain the notion of process IDs, so if you expected other systemsy stuff to work on top of it you would need to implement the notion of process IDs. - Daniel > Thank you! > > -- > Regards, > Heming Cui >
