Hi Sumit,
Presumably you are looking into Executor::executeInstruction method.If you take 
a look at, for example the code that handle LLVM'sInstruction::Add right after 
"case Instruction::Add:"
     ref<Expr> left = eval(ki, 0, state).value;
    ref<Expr> right = eval(ki, 1, state).value;
    ref<Expr> result = AddExpr::create(left, right);
    bindLocal(ki, state, result);
You can check whether left is a constant or not using
llvm::isa<ConstantExpr>(left.get())

In case the above returns false, then left is some expressioninvolving symbolic 
variables, which you can examine by executing
left->dump();
Similarly with right. I hope this answers your question.

Best,
Andrew
 

    On Friday, 18 March 2016, 1:18, Sumit Kumar <sumit686...@gmail.com> wrote:
 

 Hi,
I want to know if there is a way to know if a variable is symbolic or not in 
KLEE when KLEE is executing an instruction involving the variable.

--
Thanks and Regards,
Sumit

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


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

Reply via email to