这篇博客讲一下我在做KLEE: Unassisted and Automatic Generation of High-CoverageTests for Complex Systems Programs(OSDI 2008)Coreutils实验时遇到的问题
实验是按照官方教程做的
Step 1:Build coreutils with gcov
这个其实跟KLEE没有多大关系,按着说的来就行了
Step 2:Build Coreutils with LLVM
这个是重点,因为我们是通过这一步获得coreutils的LLVM Bitcode的,而KLEE所有操作是基于LLVM Bitcode进行的
Problem 1:
coreutils-6.11$ mkdir obj-llvm
coreutils-6.11$ cd obj-llvm
obj-llvm$ sudo ../configure --disable-nls CFLAGS="-g"
#这一步是正常的,因为我的实验是在/usr/local目录下面,所以使sudo以管理员身份执行
obj-llvm$ sudo make CC=/full/path/to/klee/scripts/klee-gcc
#这一步中的CC=···是将编译器设置为指定···编译器,这里使用的是klee-gcc,
#klee-gcc是KLEE官方提供的一个将默认gcc编译器替换成llvm-gcc,
#将可执行文件的链接器ld替换成llvm-ld,并生成LLVM Bitcode的python脚本
**可是在这一步出错了,错误如下**
/usr/local/klee/scripts/klee-gcc -I. -I../../lib -g -MT areadlink-