Skip to main content
Version: 0.21

除錯

Panics

請使用 console_error_panic crate ,他會用 Rust symbols 來做 stacktraces。注意,他跟 cargo-web 不相容。

Console Logging

通常,Wasm 的網頁應用程式可以跟瀏覽器的 API 互操作,所以 console.log 這個 api 也不例外,你可以使用以下幾種方法:

wasm-logger

這個 crate 整合了令人熟悉的 Rust log crate:

// 設定
fn main() {
wasm_logger::init(wasm_logger::Config::default());
}

// 使用
log::info!("Update: {:?}", msg);

``ConsoleService``

Yew 包含了這個 service,而且如果 "services" 這個 feaure 有被打開的話,你可以直接使用他:

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

Source Maps

目前 Rust/Wasm 網頁應用程式,不對 source maps 第一線支援。當然,這件事在未來可能會改變,如果這裡寫的資訊不正確,或是事情有所變化,請建議我們修改這篇文件!

最新資訊

[2019 12 月] Chrome DevTools update

但還是有大量的工作要做。舉例還說,在工具方面,Emscripten (Binaryen) 與 wasm-pack (wasm-bindgen),還不支援更新轉換他們的行為的 DWARF 資訊。

[2020] Rust Wasm 除錯指南

不幸地,WebAssembly 的除錯還不夠完善。在大部分的 Unix 系統中,DWARF 被用來編碼除錯器需要提供的程式碼等級的資訊。還有一種在 Windows 上的編碼資訊。但現在還沒有跟 WebAssembly 等價。

[2019] Rust Wasm roadmap

除錯是一件棘手的事情,因為大部分的事情都不是掌握在這個工作群組中,而是依賴 WebAssembly 的標準,與瀏覽器的開發者工具如何實作。