The WAMR-IDE is an Integrated Development Environment to develop WebAssembly application with coding, compiling and source debugging support. It contains 3 components: VSCode extension
, WASM-toolchain-provider docker image
and WASM source debug server docker image
.
-
VSCode extension
is an extension which can be installed invscode
, with which user can build and manage projects, developwasm application
, includingbuilding
,running
anddebugging
. -
WASM-toolchain-provider
is a docker image which provides building environment for wasm. -
WASM source debug server
is a docker image which provides running and source debugging environment for wasm application.
-
Install
VSCode
on host.- make sure the version of vscode you installed is at least 1.59.0
-
Install
Docker
on host.- Windows: Docker Desktop
- Ubuntu: Docker Engine
OS requirements: To install Docker Engine, you need the 64-bit version of one of these Ubuntu versions: - Ubuntu Impish 21.10 - Ubuntu Hirsute 21.04 - Ubuntu Focal 20.04(LTS) - Ubuntu Bionic 18.04(LTS)
-
Build docker images
We have 2 docker images which should be built or loaded on your host,
wasm-toolchain-provider
andwamr-debug-server
. To build these 2 images, please enter theWASM_Source_Debug_Server/Docker
&WASM_Toolchain/Docker
, then execute thebuild_docker_image
script respectively.```shell $ cd WASM_Toolchain/Docker $ ./build_docker_image.bat # or ./build_docker_image.sh on linux $ cd WASM_Source_Debug_Server/Docker $ ./build_docker_image.bat # or ./build_docker_image.sh on linux ```
-
Generate wamride extension package file
wamride-0.0.1.vsix
can be packaged bynpm vsce
.Note that patched
lldb
should be built and put into theVSCode_Extension/resource/debug
folder before your package or extension debug process if you want to enablesource debugging
feature. Please follow this instruction to buildlldb
.You can also debug the extension directly follow this instruction without packing the extension.
-
Install extension from vsix
and select
wamride-0.0.1.vsix
which you have saved on your host.
WAMR-IDE
extension contains 2 components as following picture showing. Project management
and Execution management
-
New project
When you click
New project
button, extension will pop up a message box at the bottom right of the screen as picture showing.You can click
Set up now
and select the target folder to create project workspace, clickMaybe later
to close the message box.Note that your selected workspace folder should be empty.
After setting up workspace, extension will prompt successful message:
workspace set up successfully!
Then click
New project
button again, a new page will show as following.Enter the
project name
and select thetemplate
, then clickCreate
button. And a new project will be generated and opened in your currentvscode window
or in a newvscode window
.Opening in current windows or a new one depends on whether your
vscode's explorer
is empty or not. If empty, open in current window, or open in the new vscode window.A new initialized project is as following picture shows.
.wamr
is the project configuration folder which contains 3 files,CMakeLists.txt
,project.cmake
andcompilation_config.json
.CMakeLists.txt
is used to buildwasm target
and theproject.cmake
is included inCMakeLists.txt
.project.cmake
includes the user's customized configuration like those folders which should be added include path. -
Open project
Click
Open project
button,quick-pick-box
will show as following. All projects under your current workspace will be shown and can be selected. -
Change workspace
Click
Change workspace
button, a dialog will show as following. You can select 1 folder in file system as workspace, and the new workspace path will override previous workspace, and all new created projects will be generated in the new workspace. -
Configuration Click
Configuration
button, a new page will be shown as following. You can config building target withInclude paths
,Initial & Max linear memory
,stack size
,exported_symbols
andinclude paths
,exclude files
.Then click
Modify
button to confirm, if configurations are modified successfully and following message will pop. ClickOK
, the page will be auto closed.And all configuration will be saved in
.wamr/compilation_config.json
. -
Customize
include paths
andexclude source files
Extension supports adding header file folder to
include path
and excluding source file from build.
-
Add to include path
- Move the cursor to the
folder
and right click, thenmenus
will be shown as following. ClickToggle state of path including
.
- Move the cursor to the
-
Exclude source file from build
- Move the cursor to the
source file
and right click, thenmenus
will be shown as following. ClickToggle state of excluding
.
After setting up
include path
andexclude files
, the corresponding folder and files will be decorated with color and icon as following picture shows.At the same time, all added
include path
andexclude files
will be saved in.wamr/compilation_config.json
as json array. - Move the cursor to the
Toggle state of path including
just shows when selectingfolder
and hides with other resources.
Toggle state of excluding
just shows when selecting[.c | .cpp | .cxx] source files
and hides with other resources.
-
Build
When you have completed coding and ready to build target, click
build
button and thewasm-toolchain
will auto start a container and execute the building process.After successful building execution,
build
folder will be generated inexplorer
, in which${output_file_name}.wasm
is exist.Note that to start
docker service
firstly. -
Run
Click
Run
button andwasm-debug-server
docker image will auto start a container and execute the running process. -
Debug
Click
Debug
button will trigger start ipwamr-debug-server
docker image, and boot uplldb debug server
inside of iwasm. Then start a debugging session with configuration to connect. TapF11
or clickstep into
to start debugging.Docker containers will be auto stopped and removed after the execution.