[klee-dev] How to distinguish klee's print of different execution paths

Cristian Cadar c.cadar at imperial.ac.uk
Thu Sep 9 13:59:28 BST 2021


Hi, you would need to modify the code associated with those klee_ 
intrinsics to also output state information (see 
https://github.com/klee/klee/blob/master/lib/Core/SpecialFunctionHandler.cpp).

Best,
Cristian

On 01/09/2021 16:38, 樊雨鑫 wrote:
> Hi,
>      I am new to Klee, use it to do program analysis.
>      I want some intermediate variables' symbolic expressions. So I use klee_print_expr() and klee_print_range() to make that.
>      But Klee prints all messages together, and no information show whether two messages belong to the same execution path.
>      for a very simple example: there are many massages printed but they looks have no difference except for the symbolic expressiones.
> ```for (int8_t i = 0; i < size; i++) {
>          for (int8_t j = 0; j < size; j++) {
>              bool omatch = (aarr[i] == barr[j]);
>              klee_print_expr("omatch", omatch);
>              if ( omatch ) {
>                  int8_tersection[i] = barr[j];
>                  break;
>              }
>          }
>      }
> ```
>      I tried to add random value as an id(by seed srand(time(0)))  at the end of the program, but different paths still may have the same random seeds.
>      How to make it that make messages of klee_print_expr can be classified by their execution paths?
>      
>      Waiting for your reply.
> _______________________________________________
> 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