/PreciseAnalysis

Precise Analysis of Indirect Calls

Primary LanguageC++OtherNOASSERTION

Running Instructions:

(This setup was done for arch linux)
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

Citations:

@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}
}