Hi,

KLEE does not provide this information, although you could add such metadata when adding a new constraint. However, because constraint solving optimisations could combine constraints, obtaining the origin of a constraint might not be possible in the general case.

Best,
Cristian

On 25/01/2024 04:07, Bohan wrote:

收件人:[email protected] <mailto:[email protected]>
周三 2024/1/24 19:18

Hi,

I am new to Klee. I have a question about how to determine which path constraints generated in the KQuery file correspond to specific paths or lines of code in the original source code or in the IR?

For example; I have a dummy c code that have 3 path,

#include <klee/klee.h> #include <stdio.h> int main() {     int num; int a = 10;     // Make 'num' a symbolic variable klee_make_symbolic(&num, sizeof(num), "num");     if (num > a + 3) {     printf("branch 0.\n");     } else if (num < a) { printf("branch 1.\n");     } else {         printf("branch 2.\n");     }     return 0; }

And here is the Kquery file for a ktest file where the num = 2147483647, and it goes to branch 0.

|array num[4] : w32 -> w8 = symbolic (query [(Slt 13 (ReadLSB w32 0 num))]         false) |

My question is there any info from Klee that tells this query is for the branch 0.

Thank you very much for help!


_______________________________________________
klee-dev mailing list
[email protected]
https://mailman.ic.ac.uk/mailman/listinfo/klee-dev

_______________________________________________
klee-dev mailing list
[email protected]
https://mailman.ic.ac.uk/mailman/listinfo/klee-dev

Reply via email to