Getting Started
Here you will find information on how to begin writing instrumentation in the whamm!
DSL.
Installation
The current way to install whamm!
is to clone the repository, build the source yourself, and add the created binary to your PATH
variable.
In the future, users will be able to download pre-built binaries on the GH releases page as we have stable, tagged releases of whamm!
.
Steps:
- Clone the
whamm!
repo - Build the source code with
cargo build
- Add the built binary to your
PATH
. This binary should be located attarget/debug/whamm
1.
Basic Test
A basic test you can run to make sure that the whamm!
binary is on your path and working as-expected is running the following command: whamm --help
. The CLI will provide information on various commands and options available for use.
Wasm monitors and manipulators
As mentioned in the introduction, whamm!
can be used to either monitor OR manipulate a program's execution.
What we mean by monitor execution is collect some information about a program's dynamic behavior. This is commonly used for debugging, logging, and metric collection.
What we mean by manipulate execution is to literally change the program's dynamic behavior.
Consider a specific feature of many debugger tools: using a debugger, a developer can set a breakpoint, inspect the current application state, and change the values of variables.
This is an example of manipulating an application's dynamic behavior through changing the state and something we will support doing in whamm!
.
Continue reading through this book's "getting started" content for how to write such monitors and manipulators.
Architecture
TODO
Helpful Tools
Here are some tools that may help when working with Wasm:
wabt
, aka the WebAssembly Binary Toolkitwasm-tools
1: We recommend adding the binary built inside target/
to your path as this will enable you to pull the latest changes on master
, build the latest version, and automatically have the latest binary on your PATH
.