- Download the SmartKT tool (you may use
git clone --recursive https://github.com/TheGrayFrost/smartKT) - Create a
projectsfolder andcd projects - Git clone the project you want to run SmartKT on. (Example:
git clone https://github.com/glennrp/libpng) - Move to the base directory (by using
cd ..) - Download the PIN toolkit into PIN/PIN folder.
- Run
./initialize.py projects/<projectName> - Create
runs.jsonfile. (Please use absolute paths.sample_runs.jsonprovided forlibpng) Note: For thetestsuitethe runs.json have been placed in the folder itself (e.g.testsuite/extern/ contains runs_extern.json) - Run
./examine.py runs.json - Enjoy!
Compiler
- gcc >= 8: https://gcc.gnu.org/gcc-8/
- g++ >= 8: https://packages.ubuntu.com/bionic/g++-8
C/C++ libraries
- clang >= 9: https://releases.llvm.org/download.html
- libxml2-dev: http://xmlsoft.org/downloads.html
Python:
- python >= 3.6: https://www.python.org/downloads/
- pyelftools
- pygithub
Our tool expects your projects to:
- be C/C++ based
- use makefiles for project build
- use CMake as the makefile generator
- support verbose makes and debug build
- work on Unix-based OSes
- contain testsuite we may use for runtime tracing
- Parallelize comments analysis part
- System benchmarking for large projects
- Check parallel execution for dynamic runtimes
- Add support for specifying custom build script
Refer here: https://docs.google.com/document/d/19lsyo48fotI4L1GyUDDhXYHXvNn6PpdtX_1TXbNAsVM/edit?usp=sharing