Skip to main content

A C/C++ code callchain checker

Project description

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/

Usage

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
./build_python_wheel_local.sh #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/build_python_wheel_docker.sh

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 https://github.com/thetheodor/manylinux-with-llvm.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

callchain_checker-0.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (16.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.28+ x86-64

callchain_checker-0.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (16.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.28+ x86-64

File details

Details for the file callchain_checker-0.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for callchain_checker-0.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 abf740d7cda2e4e353fa66b4ec5a611ad07d1ebadf18b07aa7965545e31b5fdf
MD5 319c66e49d374dce4b494e9055b7d4da
BLAKE2b-256 8cc250963168d36308f4cbdd3fb1c4773137ee1250647b6e08661740344914ff

See more details on using hashes here.

File details

Details for the file callchain_checker-0.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for callchain_checker-0.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 69d24719ceee15d2f8c89a781674d46054876e33141d588ad182dfa91a5816c3
MD5 5a5401c3613b116a0d8fcff9d6a977c5
BLAKE2b-256 c48e902d93b4b3ff25296d59154dee342ec5ee9f49f3d49a6e6a4e2d1815fff7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page