LLVM setup is pre-requisite for this application
Set LLVM_HOME and LLVM_DIR paths in your repository as:
export LLVM_HOME=/usr/lib/
export LLVM_DIR=/usr/include/llvm
(Z3 package needs to be installed globally)
Execute
./build.sh
Execute
cmake
make
Whole process will take about 30 min to compile.
After that include and lib folders need to be moved to global include and lib sections
cp -r include/* /usr/local/include/
cp -r lib/* /usr/local/lib
After any changes in tools/Example execute make.
To get detailed analysis of CHA and VSFS:
execute:
bin/svf-ex /path/to/bitcode/file
@inproceedings{sui2016svf,
title={SVF: interprocedural static value-flow analysis in LLVM},
author={Sui, Yulei and Xue, Jingling},
booktitle={Proceedings of the 25th international conference on compiler construction},
pages={265--266},
year={2016},
organization={ACM}
}
@article{sui2014detecting,
title={Detecting memory leaks statically with full-sparse value-flow analysis},
author={Sui, Yulei and Ye, Ding and Xue, Jingling},
journal={IEEE Transactions on Software Engineering},
volume={40},
number={2},
pages={107--122},
year={2014},
publisher={IEEE}
}