You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.1 KiB
1.1 KiB
Debugging WebAssembly
The following steps describe a common way to debug a WebAssembly module in Wasmtime:
-
Compile your WebAssembly with debug info enabled, usually
-g
; for example:clang foo.c -g -o foo.wasm
-
Run Wasmtime with the debug info enabled; this is
-g
from the CLI andConfig::debug_info(true)
in an embedding (e.g. see debugging in a Rust embedding) -
Use a supported debugger:
lldb -- wasmtime run -g foo.wasm
gdb --args wasmtime run -g foo.wasm
If you run into trouble, the following discussions might help:
- On MacOS with LLDB you may need to run:
settings set plugin.jit-loader.gdb.enable on
(#1953) - With LLDB, call
__vmctx.set()
to set the current context before calling any dereference operators (#1482):(lldb) p __vmctx->set() (lldb) p *foo
- The address of the start of instance memory can be found in
__vmctx->memory