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=OFF
to turn off building event sources based on instrumentation of LLVMDYNAMORIO_SOURCES=OFF
to 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-buffers
implementation of shared memory buffers used to transfer eventsvamos-common
common parts shared by multiple VAMOS repositories (mostly python packages)vamos-sources
implementation of tracing various standard events in programs (event sources) and a specification language for thatvamos-compiler
a compiler of the legacy VAMOS specificationsvamos-monitors
manually written monitors, mostly for debugging and testing purposesvamos-mpt
a compiler for multi-trace prefix transducers