🍣
Wasmでのconsoleデバッグ方法
Wasmでのconsoleデバッグ方法
はじめに
- Wasmでのデバッグは,通常のJavaScriptと同様に
console.log
を使うことができる - Wasmのコードから直接
console.log
を呼び出すには,いくつかの設定が必要となる - ここでは,Rustで書いたWasmコードから
console.log
を使う方法を紹介する
この記事で話すこと
- Wasmでの
console.log
の使い方
この記事で話さないこと
- Wasmの基本的な使い方
セットアップ
-
console.log
はweb-sys
クレートを使うことで利用可能となる -
web-sys
はWasmでWeb APIを使うためのクレートで,console.log
もその一部として提供されている
クレートの追加
Cargo.toml
[dependencies.web-sys]
version = "0.3.77"
features = [
"console",
]
使用例
src/lib.rs
mod types;
use types::GreetResponse;
use wasm_bindgen::prelude::*;
use web_sys::console::log_1;
#[wasm_bindgen]
pub fn greet(name: Option<String>) -> GreetResponse {
log_1(&format!("greet called with name: {:?}", name).into());
GreetResponse {
value: "Hello, World!".to_string(),
name,
}
}
src/App.tsx
const res = greet('test')
-
log_1
関数を使って,コンソールにメッセージを出力する-
log_1
は1つの引数を取る関数で,log_2
やlog_3
なども存在する
-
-
format!
マクロを使って,文字列をフォーマットし,into()
メソッドでJsValue
に変換して渡す
まとめ
- Wasmでの
console.log
はweb-sys
クレートを使うことで簡単に利用できる -
log_1
関数を使って,コンソールにメッセージを出力することができる
Discussion