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