The DeltaQ Oscilloscope is a C++ graphical interface to observe running Erlang programs, giving real-time insights about the instrumented system under test. It needs to be paired with the dqsd_otel Erlang wrapper, which sends execution data over a TCP socket. The oscilloscope processes that data in real time and performs statistical computations to give detailed insights about the running system.
This project is part of a master thesis.
The following must be installed before building. Everything else is fetched automatically by CPM at configure time.
| Dependency | Purpose |
|---|---|
| CMake ≥ 3.30 | Build system |
| GCC / Clang (C++17) | Compiler |
| Qt 6 | GUI framework |
| ANTLR4 C++ runtime | Parser runtime (generated files are committed; only needed if you modify the grammar) |
brew install cmake qt6 antlr4-cpp-runtimesudo apt install cmake g++ qt6-base-dev libantlr4-runtime-devsudo dnf install cmake gcc-c++ qt6-qtbase-devel antlr4-cpp-runtime-develInstall CMake and Qt 6, then install the ANTLR4 C++ runtime via vcpkg:
vcpkg install antlr4Linux (Qt6 installed system-wide):
make setupmacOS (Homebrew):
make setup QT_PREFIX=$(brew --prefix qt6)Custom Qt path (any platform):
make setup QT_PREFIX=/path/to/qt6make buildThe binary is placed at build/bin/DQOscilloscope.
./build/bin/DQOscilloscopemake testThe ANTLR-generated parser files are committed under src/parser/generated/ so most contributors do not need the antlr4 tool installed. If you change src/parser/DQGrammar.g4, regenerate them by re-running make setup with the antlr4 tool available in your PATH — CMake will detect it and rebuild only the affected files.