wasm-micro-runtime/samples/README.md
Enrico Loparco 0e4c4799b1
Get location info from function indexes in addr2line script (#3206)
Update the `addr2line` script so that:
- line info is printed in a more convenient format, e.g.
```
0: c
        at wasm-micro-runtime/test-tools/addr2line/trap.c:5:1
1: b
        at wasm-micro-runtime/test-tools/addr2line/trap.c:11:12
2: a
        at wasm-micro-runtime/test-tools/addr2line/trap.c:17:12
```
similar to how Rust prints stack traces when there's a panic. In an IDE, the user
can conveniently click on the printed path and be redirected to the file line.
- a new `--no-addr` argument can be provided to the script 

It can be used in fast interpreter mode (that is not supported by the script otherwise)
or with older wamr versions (where the stack trace only had the function index info
and not the function address). In that case, `wasm-objdump` is used to get the function
name from the index and `llvm-dwarfdump` to obtain the location info (where the line
refers to the start of the function).
2024-03-08 10:20:04 +08:00

2.5 KiB

Samples

  • basic: Demonstrating how to use runtime exposed API's to call WASM functions, how to register native functions and call them, and how to call WASM function from native function.
  • file: Demonstrating the supported file interaction API of WASI. This sample can also demonstrate the SGX IPFS (Intel Protected File System), enabling an enclave to seal and unseal data at rest.
  • multi-thread: Demonstrating how to run wasm application which creates multiple threads to execute wasm functions concurrently, and uses mutex/cond by calling pthread related API's.
  • spawn-thread: Demonstrating how to execute wasm functions of the same wasm application concurrently, in threads created by host embedder or runtime, but not the wasm application itself.
  • wasi-threads: Demonstrating how to run wasm application which creates multiple threads to execute wasm functions concurrently based on lib wasi-threads.
  • multi-module: Demonstrating the multiple modules as dependencies feature which implements the load-time dynamic linking.
  • ref-types: Demonstrating how to call wasm functions with argument of externref type introduced by reference types proposal.
  • wasm-c-api: Demonstrating how to run some samples from wasm-c-api proposal and showing the supported API's.
  • socket-api: Demonstrating how to run wasm tcp server and tcp client applications, and how they communicate with each other.
  • native-lib: Demonstrating how to write required interfaces in native library, build it into a shared library and register the shared library to iwasm.
  • sgx-ra: Demonstrating how to execute Remote Attestation on SGX with librats, which enables mutual attestation with other runtimes or other entities that support librats to ensure that each is running within the TEE.
  • workload: Demonstrating how to build and run some complex workloads, e.g. tensorflow-lite, XNNPACK, wasm-av1, meshoptimizer and bwa.
  • debug-tools: Demonstrating how to symbolicate a stack trace.