VAMOS is a framework containing libraries and a set of tools for monitoring heterogeneous asynchronous events sources. Events are efficiently transferred via concurrent buffers in the shared memory.
The current developement version can be found in the branch dev. Code in the main branch may be highly outdated. If you cannot find something that you think should be here, write to <mchqwerty (at) gmail (dot) com>.
You can use the setup.sh script for a fast set-up
# git clone ...
cd vamos
python -m venv venv/
source venv/bin/activate
./setup.sh
For a more detailed build with more control over things, you can build everything manually:
# git clone ...
cd vamos
python -m venv venv/
source venv/bin/activate
make [OPTIONS]
OPTIONS may include:
BUILD_TYPE=[Debug|Release|RelWithDebInfo]the type of build to pass to cmakeLLVM_SOURCES=OFFto turn off building event sources based on instrumentation of LLVMDYNAMORIO_SOURCES=OFFto turn off building event sources based on DynamoRIODynamoRIO_DIR=<path/to/dynamorio/cmake>to use a particular DynamoRIO buildTESSLA_SUPPORT=[ON|OFF]enable support for TeSSLa monitors
The used OPTIONS are stored into Makefile.config and re-used in future make
runs. If you want to change the options, either delete the file or change
values in there and run make reconfigure && make or make reset && make
(warning: the latter will completely clean repositories, including all files
that are not under git).
Run source venv/bin/activate from the top-level directory and then run the desired script
from one of the sub-repositories. The sub-repositories have their own READMEs.
vamos-buffersimplementation of shared memory buffers used to transfer eventsvamos-commoncommon parts shared by multiple VAMOS repositories (mostly python packages)vamos-sourcesimplementation of tracing various standard events in programs (event sources) and a specification language for thatvamos-compilera compiler of the legacy VAMOS specificationsvamos-monitorsmanually written monitors, mostly for debugging and testing purposesvamos-mpta compiler for multi-trace prefix transducers