C++ C LLVM CMake Python Shell Other
Clone or download
Permalink
Failed to load latest commit information.
cmake CMake: use cmake_{push,pop}_check_state Jul 2, 2018
docs [CMake] Add `clean_doxygen` rule to clean up doxygen build tree and Oct 4, 2017
examples Fixing missing include from get_sign.c Jan 10, 2014
include Fix uninitialized memory: enums have to be initialized Jul 4, 2018
lib Replace remaining *Inst::Create() calls with llvm::Builder Aug 3, 2018
runtime Fixed runtest library to handle the case of a NULL "name" argument in… Aug 3, 2018
scripts llvm.sh: fix patch source paths Aug 12, 2018
test Fixed runtest library to handle the case of a NULL "name" argument in… Aug 3, 2018
tools Replace remaining *Inst::Create() calls with llvm::Builder Aug 3, 2018
unittests Support sanitizer suppression files with lit-based testing Jul 4, 2018
utils Support sanitizer suppression files with lit-based testing Jul 4, 2018
.clang-format Update clang-format standard for KLEE codebase to C++11 May 12, 2018
.codecov.yml Fix coverage generation Jan 30, 2018
.dockerignore Extensive updates to the build script for dependencies and docker Jul 4, 2018
.gitattributes Added .gitattribute file that takes care of line endings. Apr 9, 2015
.gitignore gitignore build May 26, 2017
.travis.yml travis CI: add LLVM 3.8 build tests Jul 12, 2018
CMakeLists.txt Disabled unit testing in default build Aug 3, 2018
LICENSE.TXT Slight updates in license file, acknowledging more recent contributions. Mar 3, 2015
NEWS Release notes for 1.4.0 Jul 21, 2017
README-CMake.md [CMake] Add option to set GTest include dir Mar 26, 2018
README.md [Travis-CI] Added codecov.io support Jan 16, 2018
TODO.txt Renamed .pc to .kquery (kleaver query) Nov 23, 2016

README.md

KLEE Symbolic Virtual Machine

Build Status Coverage

KLEE is a symbolic virtual machine built on top of the LLVM compiler infrastructure. Currently, there are two primary components:

  1. The core symbolic virtual machine engine; this is responsible for executing LLVM bitcode modules with support for symbolic values. This is comprised of the code in lib/.

  2. A POSIX/Linux emulation layer oriented towards supporting uClibc, with additional support for making parts of the operating system environment symbolic.

Additionally, there is a simple library for replaying computed inputs on native code (for closed programs). There is also a more complicated infrastructure for replaying the inputs generated for the POSIX/Linux emulation layer, which handles running native programs in an environment that matches a computed test input, including setting up files, pipes, environment variables, and passing command line arguments.

For further information, see the webpage.