|
1 | | -# MIO Debugger |
2 | | - |
3 | | -[](https://doi.org/10.5281/zenodo.15758201) |
4 | | - |
5 | | -The MIO _/maː.joː/_ debugger is a first of its kind multiverse debugger designed for debugging WebAssembly programs on the WARDuino virtual machine. |
| 1 | +# rCMD Debugger |
| 2 | +The rCMD (pronounced rCommand) debugger is a prototype remote concolic multiverse debugger designed for debugging WebAssembly programs on the WARDuino virtual machine. |
6 | 3 |
|
7 | 4 | ## Dependencies |
8 | | -To build MIO + WARDuino you will need the following dependencies: |
| 5 | +To build rCMD + WARDuino you will need the following dependencies: |
9 | 6 |
|
10 | | -- Java 21 |
11 | | -- A modern C++ compiler |
12 | | -- Cmake |
13 | | -- Z3 for WARDuino's concolic mode |
| 7 | +- Java 21+ |
| 8 | +- A C++ compiler supporting C++17 |
| 9 | +- Cmake 3.15+ |
| 10 | +- Z3 |
14 | 11 |
|
15 | 12 | ## Getting started |
16 | 13 | > [!NOTE] |
17 | 14 | > Currently only Linux and macOS are supported. |
18 | 15 |
|
19 | | -MIO uses the Gradle build system. To get started, `./gradlew setup` can be used. This will build MIO and WARDuino and create a default configuration file in `~/.mio/debugger.properties`. |
| 16 | +rCMD uses the Gradle build system. To get started, `./gradlew setup` can be used. This will build rCMD and WARDuino and create a default configuration file in `~/.rcmd/debugger.properties`. |
20 | 17 |
|
21 | | -The debugger can then be started by running `java -jar mio.jar` in the `build/libs` directory. To run MIO you will need Java 22 or higher. |
| 18 | +The debugger can then be started by running `java -jar rcmd.jar` in the `build/libs` directory. To run rCMD you will need Java 21 or higher. |
22 | 19 |
|
23 | 20 | ```bash |
24 | 21 | git clone --recursive git@github.com:TOPLLab/MIO.git |
25 | 22 | cd MIO |
26 | 23 | ./gradlew setup |
27 | 24 | cd build/libs |
28 | | -java -jar mio.jar |
| 25 | +java -jar rcmd.jar |
29 | 26 | ``` |
30 | 27 |
|
31 | | -More experienced users can also just build MIO by itself by using `./gradlew fatjar`. When doing so you will need to manually create a configuration file and provide or build your own copy of WARDuino. More information about the configuration file can be found below. |
| 28 | +More experienced users can also just build rCMD by itself by using `./gradlew fatjar`. When doing so you will need to manually create a configuration file and provide or build your own copy of WARDuino. More information about the configuration file can be found below. |
32 | 29 |
|
33 | 30 | ## Configuration |
34 | 31 | To use the debugger you will need a `debugger.properties` configuration file, this config currently needs to be positioned at |
35 | | -`~/.mio/debugger.properties`. This config specifies where the debugger can find WARDuino, which USB port it should |
| 32 | +`~/.rcmd/debugger.properties`. This config specifies where the debugger can find WARDuino, which USB port it should |
36 | 33 | use, if the debugger should run on an emulator or not and how big the UI should be. An example of this config file can |
37 | 34 | be found [here](debugger.properties). |
38 | 35 |
|
39 | 36 | > [!NOTE] |
40 | 37 | > The concolic option currently requires the usage of a modified WARDuino version which can be found on the `feat/symbolic-templated` branch. This branch houses the code for the concolic execution engine used for suggesting interesting paths. |
41 | 38 |
|
42 | 39 | ## Command line arguments |
43 | | -MIO has various command line arguments that can be used to flash and debug programs. We list these options here: |
| 40 | +rCMD has various command line arguments that can be used to flash and debug programs. We list these options here: |
44 | 41 | - `repl` which starts up a debugger repl. |
45 | 42 | - `debug` which starts up the graphical debugger, this option requires two arguments a `.wasm.map` and `.wasm` file. Example: `debug robotarm.wasm.map robotarm.wasm`. |
46 | 43 | - `flash` which uploads the program provided as an argument and starts to run it on the microcontroller. |
47 | 44 | - `run` same thing as flash but after uploading the module it will open a debugger repl. |
48 | 45 |
|
49 | | -If no option is specified, MIO will open a welcome screen allowing you to select the program you would like to debug using a graphical interface. This graphical window works similarly to the `debug` option. |
| 46 | +If no option is specified, rCMD will open a welcome screen allowing you to select the program you would like to debug using a graphical interface. This graphical window works similarly to the `debug` option. |
0 commit comments