KLEE环境搭建

本文参考
https://blog.youkuaiyun.com/wuhaou12345678/article/details/125056332
https://blog.youkuaiyun.com/qq_21746331/article/details/114967920
修改部分命令,可以正常运行

安装环境:/opt/klee_env
1.安装必备工具和依赖

sudo apt-get install build-essential curl libcap-dev git cmake libncurses5-dev python-minimal python-pip unzip libtcmalloc-minimal4 libgoogle-perftools-dev libsqlite3-dev doxygen
sudo apt-get install python3 python3-pip gcc-multilib g++-multilib
sudo pip3 install lit tabulate wllvm
sudo apt-get install zlib1g-dev

2.安装LLVM9

sudo apt-get install clang-9 llvm-9 llvm-9-dev llvm-9-tools

3.安装约束求解器z3

git clone https://github.com/Z3Prover/z3.git 
cd z3/ 
python scripts/mk_make.py 
sudo make install

4.安装uClibc 和 POSIX 环境(建议安装)
如果想使用 KLEE 来运行实际程序,将需要启用 KLEE POSIX 运行时,它构建在uClibc C 库之上。毕竟针对实际程序还是有用的

git clone https://github.com/klee/klee-uclibc.git 
cd klee-uclibc /configure --make-llvm-lib --with-llvm-config /usr/bin/llvm-config-9 
make

5.获取谷歌测试集(可选)

curl -OL https://github.com/google/googletest/archive/release-1.7.0.zip 
unzip release-1.7.0.zip

6.下载klee2-2的代码
下载地址:https://github.com/klee/klee/releases
下载后,解压到/opt/klee_env的路径下
构建 libc++,为了支持C++代码的运行,需要打开对C++标准库的支持

cd klee-2.2
LLVM_VERSION=9 SANITIZER_BUILD= BASE=/opt/klee_env(自己的路径) REQUIRES_RTTI=1 DISABLE_ASSERTIONS=1 ENABLE_DEBUG=0 ENABLE_OPTIMIZED=1 ./scripts/build/build.sh libcxx

7.编译构建klee
安装gcc9(可选)

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update 
sudo apt-get install gcc-9 g++-9

编译

cd klee2-2 
mkdir build
cd build
sudo cmake -DENABLE_SOLVER_STP=NO -DENABLE_SOLVER_Z3=ON -DENABLE_POSIX_RUNTIME=ON -DENABLE_KLEE_UCLIBC=ON -DENABLE_KLEE_LIBCXX=ON -DKLEE_LIBCXX_DIR=/opt/klee_env/libc++-install-90/ -KLEE_LIBCXX_INCLUDE_DIR=/opt/klee_env/libc++-install-90/include/c++/v1/ -DENABLE_KLEE_EH_CXX=ON -DKLEE_LIBCXXABI_SRC_DIR=/opt/klee_env/llvm-90/libcxxabi/ -DKLEE_UCLIBC_PATH=/opt/klee_env/klee-uclibc/ -DENABLE_UNIT_TESTS=ON -DENABLE_SYSTEM_TESTS=ON -DGTEST_SRC_DIR=/opt/klee_env/googletest-release-1.7.0/ -DLLVM_CONFIG_BINARY=/usr/bin/llvm-config-9 -DLLVMCC=/usr/bin/clang-9 -DLLVMCXX=/usr/bin/clang++-9 -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ .. 
make
sudo make install

结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值