首页 / Tauri 2 入门教程 / IDE 调试配置

Tauri 2 入门教程

IDE 调试配置

本教程共 48 篇 · 第 43 篇 · 更新于 2026-08-09 · 约 8 分钟阅读

TauriTauri 2 入门教程调试VS Code断点LLDBRustRoverIDE

本节目标:读完你能在 VS Code 里按 F5 启动 Tauri 应用、在 Rust 代码上设断点、单步调试,同时前端开发服务器也自动跑起来。

上一章讲了用 DevTools 和日志排查问题。但有些 bug 靠打日志不够,你需要让程序在某一行停下来,看看变量的值、调用栈的走向。这就需要 IDE 的断点调试(breakpoint debugging)。

Tauri 的核心进程(Core Process)是 Rust 编译的,所以调试 Rust 端需要用到 LLDB 或 Windows Debugger。前端 JS 的调试则用浏览器 DevTools 就行。本章重点讲怎么在 VS Code 里配置 Rust 端的断点调试,顺带提一下 JetBrains RustRover 的配置方法。

前置准备:安装 vscode-lldb 扩展

VS Code 本身不带 Rust 调试器,需要装一个扩展叫 vscode-lldb。它基于 LLDB,跨平台支持 Windows、macOS 和 Linux。

在 VS Code 扩展市场搜索 vadimcn.vscode-lldb,点安装。装好后你就能在 launch.json 里用 "type": "lldb" 类型的调试配置了。

Note

如果你用的是 Windows 并且装了 Visual Studio,也可以用 cppvsdbg 类型(Visual Studio Windows Debugger),对 Rust 枚举等特性的支持更好一些。后面会给出两种配置。

配置 launch.json

在项目根目录创建 .vscode/launch.json 文件,粘贴以下内容:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "lldb",
      "request": "launch",
      "name": "Tauri Development Debug",
      "cargo": {
        "args": [
          "build",
          "--manifest-path=./src-tauri/Cargo.toml",
          "--no-default-features"
        ]
      },
      "preLaunchTask": "ui:dev"
    },
    {
      "type": "lldb",
      "request": "launch",
      "name": "Tauri Production Debug",
      "cargo": {
        "args": ["build", "--release", "--manifest-path=./src-tauri/Cargo.toml"]
      },
      "preLaunchTask": "ui:build"
    }
  ]
}

这里定义了两个配置:

  • Tauri Development Debug:调试模式构建,用 --no-default-features 让 Tauri 走前端开发服务器而不是读打包后的静态文件
  • Tauri Production Debug:Release 模式构建,性能更接近生产环境
Tip

--no-default-features 很关键。默认 features 会把前端资源嵌入二进制文件,这样你就用不了热更新的开发服务器了。加上这个参数,Tauri 会连接你 beforeDevCommand 启动的前端 dev server。

配置 tasks.json

launch.json 里的 preLaunchTask 指向任务名,这些任务定义在 .vscode/tasks.json 中。它的作用是:按 F5 之前先把前端开发服务器跑起来。

创建 .vscode/tasks.json

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "ui:dev",
      "type": "shell",
      "isBackground": true,
      "command": "npm",
      "args": ["run", "dev"]
    },
    {
      "label": "ui:build",
      "type": "shell",
      "command": "npm",
      "args": ["run", "build"]
    }
  ]
}

commandargs 换成你实际用的包管理器和脚本。比如用 pnpm 就改成 "command": "pnpm""args": ["dev"];用 yarn 就改成 "command": "yarn""args": ["dev"]

Note

ui:dev 设了 "isBackground": true,因为开发服务器会一直运行不会退出。VS Code 需要知道这是个后台任务,否则会等它结束才开始调试。理想情况下你还应该配一个 problemMatcher,让 VS Code 能判断开发服务器何时就绪。详见 VS Code 文档

开始调试

配置好后,调试流程很简单:

  1. src-tauri/src/main.rs 或任何 Rust 文件里,点行号左侧设一个红点断点
  2. F5(或调试面板里选「Tauri Development Debug」点绿色播放按钮)
  3. VS Code 先跑 ui:dev 任务启动前端开发服务器,再用 cargo 编译 Rust 项目,编译完启动调试

程序会在断点处暂停,你可以看变量值、调用栈、逐行执行(F10 单步跳过、F11 单步进入、Shift+F11 跳出)。

Tip

这个配置直接用 cargo build 而不是 tauri dev,所以 Tauri CLI 的某些独有功能不会执行。beforeDevCommand 的工作由 preLaunchTask 替代完成。

Windows 专用配置:Visual Studio Debugger

如果你在 Windows 上开发,可以改用 cppvsdbg 类型,速度通常比 LLDB 更快,对 Rust 枚举的展示也更友好。

前置条件

需要安装 C/C++ 扩展(ms-vscode.cpptools),以及 Visual Studio 的 Windows Debugger 工具。按 VS Code C++ 配置文档 走一遍即可。

launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch App Debug",
      "type": "cppvsdbg",
      "request": "launch",
      "program": "${workspaceRoot}/src-tauri/target/debug/your-app-name-here.exe",
      "cwd": "${workspaceRoot}",
      "preLaunchTask": "dev"
    }
  ]
}

your-app-name-here 改成你实际的可执行文件名(在 tauri.conf.jsonproductNameCargo.tomlname 里找)。

tasks.json

这里用任务组合(dependsOn)把 cargo 编译和前端开发服务器一起跑:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build:debug",
      "type": "cargo",
      "command": "build",
      "options": {
        "cwd": "${workspaceRoot}/src-tauri"
      }
    },
    {
      "label": "ui:dev",
      "type": "shell",
      "isBackground": true,
      "command": "npm",
      "args": ["run", "dev"]
    },
    {
      "label": "dev",
      "dependsOn": ["build:debug", "ui:dev"],
      "group": {
        "kind": "build"
      }
    }
  ]
}

launch.json 里的 preLaunchTask 指向 dev,这个任务会同时触发 cargo 编译和前端开发服务器。

前端断点调试

Rust 端的断点在 VS Code 里搞定了,前端 JS/TS 的断点怎么设?

最简单的方式:应用运行时打开 DevTools(上一章讲过,右键检查或 Ctrl+Shift+I),在 Sources 面板里找到对应文件设断点。

如果你想直接在 VS Code 里调试前端代码,可以再加一个 chromemsedge 类型的调试配置,附加到 WebView 的调试端口。不过这需要额外配置,对于大多数场景,直接用 DevTools 调前端就够用了。

RustRover / IntelliJ 配置

JetBrains 系列的 IDE(RustRover、IntelliJ、CLion)也能调试 Tauri 的 Rust 端。

关联 Cargo 项目

Tauri 项目的 Cargo.tomlsrc-tauri/ 子目录下,不是项目根目录。打开 IDE 后可能没有自动识别。手动关联:打开 Cargo 工具窗口(菜单 View → Tool Windows → Cargo),点 + 号,选 src-tauri/Cargo.toml

或者你在项目根目录加一个 workspace 文件:

[workspace]
members = ["src-tauri"]

配置 Run/Debug

需要建两个配置:

Tauri App(Cargo 配置)

  1. 菜单 Run → Edit Configurations
  2. + 选 Cargo
  3. 在 Additional cargo args 里加 --no-default-features
  4. 命名为「Run Tauri App」

前端开发服务器(npm 配置)

  1. 再点 + 选 npm
  2. Command 填 run,Scripts 填 dev
  3. 命名为「Dev Server」

调试流程

先跑「Dev Server」配置启动前端,再点「Run Tauri App」旁边的 Debug 按钮(虫子图标)启动 Rust 调试。RustRover 会自动识别 Rust 文件里的断点并在命中时暂停。

Tip

如果你的前端不是 npm/pnpm/yarn 而是纯 Rust 的 WebAssembly(比如用 trunk),Dev Server 配置改成 Shell Script 类型,命令填 trunk serve 即可。

小结

VS Code 配合 vscode-lldb 扩展是调试 Tauri Rust 端的推荐方案:launch.json 配置 cargo 编译参数,tasks.json 负责启动前端开发服务器,按 F5 一键开始断点调试。Windows 用户可换用 cppvsdbg 获得更好性能。关键细节是加 --no-default-features 让 Tauri 走开发服务器。JetBrains 系列用户可在 RustRover 里配两个 Run Configuration(一个 Cargo 跑 Rust,一个 npm 跑前端),效果类似。前端 JS 的调试直接用 WebView DevTools 即可。