跳到内容
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 中单击鼠标右键,然后选择 检查元素。这将打开一个类似于您习惯使用的 Chrome 或 Firefox 开发人员工具的 Web 检查器。您也可以使用 Linux 和 Windows 上的 Ctrl + Shift + i 快捷键以及 macOS 上的 Command + Option + i 快捷键来打开检查器。

检查器是平台特定的,在 Linux 上渲染 webkit2gtk WebInspector,在 macOS 上渲染 Safari 的检查器,在 Windows 上渲染 Microsoft Edge DevTools。

以编程方式打开 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)/[应用名称] 并在控制台中直接运行它,或者在文件系统中双击可执行文件本身(注意:使用此方法,控制台会在发生错误时关闭)。

启用 Devtools 功能

要在生产版本中启用 devtools,您必须在 src-tauri/Cargo.toml 文件中启用 devtools Cargo 功能

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

调试核心进程

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


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