跳转到内容
Tauri

调试

在 Tauri 中,许多元素在移动,你可能会遇到需要调试的问题。有许多位置会打印错误详细信息,并且 Tauri 包含一些工具,可以让调试过程更加直接。

仅开发代码

你工具箱中最有用的调试工具之一是能够在你的代码中添加调试语句的能力。然而,你通常不希望这些语句在产品环境中出现,这正是检查你是否以开发模式运行的特性派上用场的时候。

在 Rust 中

fn main() {
// Whether the current instance was started with `tauri dev` or not.
#[cfg(dev)]
{
// `tauri dev` only code
}
if cfg!(dev) {
// `tauri dev` only code
} else {
// `tauri build` only code
}
let is_dev: bool = tauri::is_dev();
// Whether debug assertions are enabled or not. This is true for `tauri dev` and `tauri build --debug`.
#[cfg(debug_assertions)]
{
// Debug only code
}
if cfg!(debug_assertions) {
// Debug only code
} else {
// Production only code
}
}

Rust 控制台

寻找错误的第一处是在 Rust 控制台中。这是在你运行了例如 tauri dev 的终端中。你可以在 Rust 文件中使用以下代码向该控制台打印内容。

println!("Message from Rust: {}", msg);

有时你可能在 Rust 代码中遇到错误,并且 Rust 编译器会给你很多信息。例如,如果 tauri dev 崩溃了,你可以在 Linux 和 macOS 上这样重新运行它:

RUST_BACKTRACE=1 tauri dev

或者 Windows(PowerShell)上这样运行:

$env:RUST_BACKTRACE=1
tauri dev

此命令提供了细粒度的堆栈跟踪。一般来说,Rust 编译器通过提供关于问题详细的信息来帮助你,例如

error[E0425]: cannot find value `sun` in this scope
--> src/main.rs:11:5
|
11 | sun += i.to_string().parse::<u64>().unwrap();
| ^^^ help: a local variable with a similar name exists: `sum`
error: aborting due to previous error
For more information about this error, try `rustc --explain E0425`.

WebView 控制台

在 WebView 中右键单击,然后选择 Inspect Element。这打开了一个类似 Chrome 或 Firefox 开发工具的网页检查器。你还可以使用 Linux 和 Windows 上的 Ctrl + Shift + i 快捷键以及 macOS 上的 Command + Option + i 快捷键来打开检查器。

检查器是平台特定的,在 Linux 上是 webkit2gtk WebInspector,macOS 上是 Safari 的检查器,Windows 上是 Microsoft Edge 开发工具。

编程方式打开 Devtools

你可以使用 WebviewWindow::open_devtoolsWebviewWindow::close_devtools 函数来控制检查器窗口的可见性

tauri::Builder::default()
.setup(|app| {
#[cfg(debug_assertions)] // only include this code on debug builds
{
let window = app.get_webview_window("main").unwrap();
window.open_devtools();
window.close_devtools();
}
Ok(())
});

在生产中使用检查器

默认情况下,除非你使用 Cargo 功能启用它,否则检查器仅在开发和调试构建中启用。

创建调试构建

要创建调试构建,运行 tauri build --debug 命令。

npm run tauri build -- --debug

与正常的构建和开发流程一样,首次运行此命令需要一些时间,但后续运行会快得多。最后的捆绑应用程序启用了开发控制台,并放置在 src-tauri/target/debug/bundle

您还可以从终端运行已构建的应用程序,这将为您提供Rust编译器笔记(如果有错误的话)或您的println消息。浏览到文件src-tauri/target/(release|debug)/[app name],直接在您的控制台中运行它,或双击文件系统中的可执行文件本身(注意:使用此方法出错时控制台会关闭)。

启用开发者工具功能

要在生产构建中启用开发者工具,您必须启用src-tauri/Cargo.toml文件中的devtools Cargo功能

[dependencies]
tauri = { version = "...", features = ["...", "devtools"] }

调试核心进程

核心进程由Rust驱动,因此您可以使用GDB或LLDB来调试它。您可以按照在VS Code中调试指南学习如何使用LLDB VS Code扩展来调试Tauri应用程序的核心进程。


© 2025 Tauri贡献者。CC-BY / MIT