A C/C++ code callchain checker

pip install callchain-checker==0.0.3


ccc is the callchain checker used in DEAD.

To build just the clang tool

Prerequisites: cmake, make, clang/llvm 13/14.

mkdir build
cd build
cmake .. 
cmake --build . [--parallel]
cmake --install . --prefix=/where/to/install/


cat test.c
int bar();
int foo(){
    return bar();

./build/bin/ccc test.c --from=foo --to=bar --
call chain exists between foo -> bar

Python wrapper

pip install callchain-checker

To use the checker in python import from callchain_checker.callchain_checker import callchain_exists: callchain_exists(program: diopter.SourceProgram, source_function: str, target_function:str) -> bool

Building the python wrapper

Local build
./ #this will build the current branch
pip install .

Docker based build

docker run --rm -e REVISION=REV -v `pwd`:/io theodort/manylinux-with-llvm:latest /io/

This will build multiple wheels for REV with multiple python versions. The output is stored in the wheelhouse directory. The docker image is based on