The root of the source tree is organized as follows:
Contains files required by the CMake build system.
Contains the dependency build system and cache.
Contains the Dockerfile for the docker image and the CI.
Contains this documentation source and configuration.
Contains various QBDI usage examples.
Contains the public include files.
Contains the package generation scripts.
Contains QBDI source code. This tree is described further in section Source Tree.
Contains QBDI usage templates.
Contains the functional test suite.
Contains QBDI development tools: the validator and the validation runner.
The source files are organized as follows:
Contains code related to the VM API and underlying Engine controlling the overall execution.
Contains code used to generate, store and execute JITed code inside ExecBlocks which form a code cache managed by the ExecBlockManager.
Contains code implementing the execution brokering mechanism allowing to switch between instrumented execution and real execution.
Contains the PatchDSL implementation and per architecture support.
Contains various utility class and functions.