[klee-dev] Klee Dump States Question
Cristian Cadar
c.cadar at imperial.ac.uk
Sun Jan 18 21:04:21 GMT 2015
Hi Eric,
Mark's answer was basically right: when the timeout is exceeded, any
state/path which hasn't finished generates a test case. That is, its
current path constraints are solved to generate a concrete test case,
which is written into a .ktest file.
I'm not sure what you mean by a "path" when you say that a particular
path generates 20 new queries, but give us more details if things are
still unclear.
Best,
Cristian
On 16/01/2015 19:26, eric.rizzi at huskers.unl.edu wrote:
> Thanks Mark, I'm glad to hear UNL'ers never give up on their Klee quests.
>
>
> I completely forgot to include the following observation I made:
>
>
> I modified Klee so that the path that led to a state that generates a
> particular query is included in the header information sent to the
> solver. I did this for two reasons
>
>
> 1) I was interested in tracking which queries were associated with a
> particular path though the states.
>
> 2) I wanted to see whether it was true that Klee just solved all of the
> states remaining in the queue.
>
>
> It turns out that Klee generates up to 20 new queries along a particular
> path after the timeout. Are these 20 queries just part of solving this
> final state? Why wouldn't Klee just bundle all of them into a single
> query and rely on the solver chain to handle it?
>
>
> Finally, after some quick parsing, it seems like there is a lot of
> repetition in these "finalizing queries." Why wouldn't Klee just create
> a single query that encodes ALL of the information required to pass
> through that particular state and leave it at that.
>
>
> ------------------------------------------------------------------------
> *From:* markrtuttle at gmail.com <markrtuttle at gmail.com> on behalf of Mark
> R. Tuttle <mrtuttle at alum.mit.edu>
> *Sent:* Friday, January 16, 2015 1:59 PM
> *To:* eric.rizzi at huskers.unl.edu
> *Subject:* Re: [klee-dev] Klee Dump States Question
>
> Hi, Eric.
>
> I was an undergraduate student at Nebraska computer science...
>
> The pros will answer you more exactly, but here is what I think is going
> on. KLEE maintains a work queue of symbolic states. Each state
> represents a collection of constraints on the inputs (the symbolic
> values) that will cause the code to reach a given branch branch. Klee
> takes a symbolic state off the work queue, executes symbolically until
> the next branch, and then splits the state into two, one for each
> outcome of the branch. So when your timer goes off, KLEE stops doing
> symbolic execution and starts dumping states. But each state on the
> work queue is just a set of constraints, and KLEE has to send each set
> of constraints to the constraint solver to get a concrete representation
> to dump.
>
> Mark
>
>
> On Fri, Jan 16, 2015 at 12:25 PM, eric.rizzi at huskers.unl.edu
> <mailto:eric.rizzi at huskers.unl.edu> <eric.rizzi at huskers.unl.edu
> <mailto:eric.rizzi at huskers.unl.edu>> wrote:
>
> Hello,
>
> I have been working with Klee for the past few weeks and I have a
> question related to what happens when Klee reaches it’s timeout
> (-max-time) and dumps it’s states.
>
> It seems that this “wrapping up” period requires significant time,
> often exceeding the initial timeout. In addition, when examining
> the output sent to the solver, the number of queries being generated
> is significantly higher after the timeout than before.
>
> My question is, why is this happening? It seems that upon wrapping
> up, the states on the edge of the exploration should be solved for,
> creating one test that will pass through each of these states. My
> intuition, however, is clearly wrong.
>
> In case it helps, I used the following command line to run Klee
>
> % klee --libc=uclibc --posix-runtime --use-query-log=solver:smt2
> --max-time=1000 program.bc --sym-args 1 3 12 --sym-files 2 100
>
> Thanks,
> Eric Rizzi
>
>
> _______________________________________________
> 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
>
>
>
>
> _______________________________________________
> 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