メインコンテンツまでスキップ
Version: 0.18.0

デバッグ

パニック#

Rustシンボルで良いスタックトレースをするには console_error_panicクレートを使用してください。 注意として、cargo-webでビルドされたものとは互換性がありません。

コンソールでのログ#

一般的に、WasmのWebアプリはブラウザのAPIと連携することができ、console.logのAPIも例外ではありません。 いつくかの選択肢があります:

wasm-logger#

このクレートはRustのlogクレートと親和性があります。

// セットアップfn main() {    wasm_logger::init(wasm_logger::Config::default());}
// 使用方法log::info!("Update: {:?}", msg);

ConsoleService#

このサービスはYewに含まれており、"services"の機能が有効化されている場合は利用可能です。

// 使用方法ConsoleService::info(format!("Update: {:?}", msg).as_ref());

ソースマップ#

今のところはRust/WasmのWebアプリにはソースマップへの第一級のサポートがありません。 もちろん、これは変更される可能性があります。これが当てはまらない場合、または進捗が見られる場合は、変更を提案してください!

最新情報#

[2019年12月] Chrome DevTools update

やらなければいけないことがまだたくさんあります。例えばツール側ではEmscripten(Binaryen)とwasm-pack(wasm-bindgen)がそれらが実行する変換に関するDWARF情報の更新をまだサポートしていません。

[2020] Rust Wasm デバッグガイド

残念なことに、WebAssemblyのデバッグの物語はまだ未成熟です。ほとんどのUnixのシステムではDWARFは実行中のプログラムをソースレベルで検査するためにデバッガに必要な情報をエンコードするために使用されます。Windowsには同様の情報をエンコードする代替形式があります。現在、WebAssemblyに相当するものはありません。

[2019] Rust Wasm ロードマップ

デバッグはトリッキーです。なぜなら、多くの話はこの活動チームの手の届かないところにあり、WebAssembly の標準化団体とブラウザ開発者ツールを実装している人たちの両方に依存しているからです。