Τι είναι και τι πρόβλημα λύνει

Το KLEE είναι symbolic virtual machine built on top of the LLVM compiler infrastructure. Ο core engine εκτελεί LLVM bitcode modules με υποστήριξη symbolic values, επιτρέποντας την εξέταση διαφορετικών συμπεριφορών του ίδιου προγράμματος αντί για την εκτέλεση μόνο συγκεκριμένων test inputs.

Βασικά χαρακτηριστικά

  • Core engine: Εκτέλεση LLVM bitcode modules με symbolic values, με τον κώδικα του engine επιμερισμένο στο lib/.
  • POSIX/Linux emulation layer: Layer προσανατολισμένο στο uClibc, με δυνατότητα να γίνουν symbolic τμήματα του OS environment.
  • Replay infrastructure: Μια απλή βιβλιοθήκη αναπαραγωγής computed inputs σε native code για closed programs. Για native programs που χρησιμοποιούν το POSIX/Linux layer, η αναπαραγωγή καλύπτει files, pipes, environment variables και command-line arguments, ώστε το runtime environment να ανταποκρίνεται στο computed test input.

Σε ποιους απευθύνεται

Απευθύνεται σε μηχανικούς και ερευνητές που εργάζονται με LLVM bitcode, symbolic values και test inputs που πρέπει να επαναπαράγονται με ακρίβεια στο native environment.