- std::path::canonicalize(std::fs::canonicalizeへのエイリアス)はプラットフォーム依存の挙動でwasmやWASIだとランタイムでErrを返して落ちるっぽい
環境構築
RustにWasiターゲットを追加する
wasmtime(WASI用にビルドされたやつを動かすためのランタイム)のインストール
なぜかMacだときちんと入らなかったので手動で落としてきて、~/.wasmtime/bin/wasmtime
に配置しておく
VSCodeでブレークポイントかけてデバッグする
launch.jsonにこういうのを追加する
コマンドラインオプションとかはよしなにする。_NO_DEBUG_HEAP
はWindows環境でデバッグすると極端に遅くなる時につける環境変数らしい。WSLだと関係ないのだろうか、よくわからん。
立ち上げてから動き始めるまで15秒くらいかかるので不安になるが、とりあえずブレークポイントは張れた。変数の中身とかきちんと覗けないのはあるが、落ちる原因の特定ぐらいまではできて便利。
wasmtimeにはオーディオドライバがない(当たり前)
ここまでやってエラーで落ちることはなくなったが、Wasmtime上ではオーディオドライバをシステムとブリッジしてくれる仕組みがないので音が出ない。