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 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.