I tried several different version of LLVM and klee but I always run into 
this problem.  It seems that the solver returns incorrect results but 
all solver related unit tests pass.  So, what's actually wrong?  Have I 
forgotten some settings in the configuration/building process?

$ cat test.c
#include <klee/klee.h>
int main(int argc, char *argv[]) {
   int c;
   klee_make_symbolic(&c, sizeof c, "c");
   if (c > 10)
     return 1;
   return 0;
}

$ llvm-gcc -c -g -emit-llvm -I$KLEE_DIR/include test.c
$ klee -use-stp-query-pc-log test.o; cat klee-out-0/stp-queries.qlog

KLEE: done: total instructions = 19
KLEE: done: completed paths = 1
KLEE: done: generated tests = 1

# Query 0 -- Type: InitialValues, Instructions: 13
(query [] false)
#   OK -- Elapsed: 0.000226092
#   Solvable: true

# Query 1 -- Type: InitialValues, Instructions: 13
array arr1[4] : w32 -> w8 = symbolic
(query [] (Eq false
               (Slt 10
                    (ReadLSB w32 0 arr1))) []
        [arr1])
#   OK -- Elapsed: 0.00159706
#   Solvable: false

$ klee -debug-validate-solver test.o
KLEE: output directory = "klee-out-1"
klee: Solver.cpp:302: virtual bool 
ValidatingSolver::computeValidity(const klee::Query&, 
klee::Solver::Validity&): Assertion `0 && "invalid solver result 
(computeValidity)"' failed.
0   klee 0x08a468e8
zsh: abort      klee -debug-validate-solver test.o

Heinz

On 05/19/2010 01:22 AM, Heinz Riener wrote:
> Dear all,
>
> I've updated (yesterday night) to the head SVN revisions of LLVM and
> Klee. Now, for every program Klee completes only one path. For instance,
> running Klee on the example of tutorial one, gives me the following output:
>
> $ llvm-gcc -c -g -emit-llvm islower.c
> $ klee islower.o
> KLEE: output directory = "klee-out-0"
>
> KLEE: done: total instructions = 27
> KLEE: done: completed paths = 1
> KLEE: done: generated tests = 1
>
> $ ktest-tool klee-last/test000001.ktest
> ktest file : 'klee-last/test000001.ktest'
> args : ['islower.o']
> num objects: 1
> object 0: name: 'input'
> object 0: size: 1
> object 0: data: '\x00'
>
> For all other programs, it's absolutely the same: the state set is
> always empty (except the initial state) and the data is always zero.
>
> I followed exactly the steps on the homepage[1] to build Klee with
> uclibc support. I'm currently at revision 103959 and created Release
> builds of LLVM and Klee. All unit tests pass but I see lots of fails in
> the check summary. (The whole output of make check is attached.)
>
> === Summary ===
>
> # of expected passes 62
> # of unexpected failures 43
> # of expected failures 2
>
> My previous versions of LLVM and Klee were several weeks old but worked
> fine.
>
> [1] http://klee.llvm.org/GetStarted.html
>
> Heinz
>
>
>
> _______________________________________________
> klee-dev mailing list
> klee-dev at keeda.stanford.edu
> http://keeda.Stanford.EDU/mailman/listinfo/klee-dev

Reply via email to