콘텐츠로 이동
Tauri

VS Code에서의 디버깅

이 장에서는 Tauri 앱의 코어 프로세스를 디버깅하기 위한 VS Code 설정에 대해 설명합니다.

vscode-lldb 확장 기능을 설치하십시오.

.vscode/launch.json 파일을 만들고 다음 JSON 콘텐츠를 붙여넣습니다:

.vscode/launch.json
{
// VS Code의 IntelliSense 입력 지원 기능을 사용하여 사용 가능한 속성에 대해 알아보십시오.
// 마우스를 기존 속성 위에 놓으면 해당 설명이 표시됩니다.
// 자세한 내용은 https://go.microsoft.com/fwlink/?linkid=830387을 참조하십시오.
"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"
]
},
// `beforeDevCommand`의 작업을 사용하는 경우, `.vscode/tasks.json`에서 설정해야 합니다.
"preLaunchTask": "ui:dev"
},
{
"type": "lldb",
"request": "launch",
"name": "Tauri Production Debug",
"cargo": {
"args": ["build", "--release", "--manifest-path=./src-tauri/Cargo.toml"]
},
// `beforeBuildCommand`의 작업을 사용하는 경우, `.vscode/tasks.json`에서 설정해야 합니다.
"preLaunchTask": "ui:build"
}
]
}

이제 cargo를 직접 사용하여 Rust 애플리케이션을 빌드하고 개발 모드와 프로덕션 모드 모두에서 로드할 수 있습니다.

즉, Tauri CLI를 사용하지 않으므로 CLI 고유의 기능은 실행되지 않습니다. beforeDevCommandbeforeBuildCommand 스크립트는 사전에 실행하거나 위와 같이 preLaunchTask 필드에서 작업으로 설정해야 합니다. 다음은 개발 서버를 시작하는 beforeDevCommand 작업과 beforeBuildCommand 작업 두 가지를 포함하는 .vscode/tasks.json 파일의 예입니다:

.vscode/tasks.json
{
// tasks.json 형식에 대한 문서는
// https://go.microsoft.com/fwlink/?LinkId=733558을 참조하십시오.
"version": "2.0.0",
"tasks": [
{
"label": "ui:dev",
"type": "shell",
// `dev`는 백그라운드에서 실행이 계속됩니다.
// 이상적으로는 `problemMatcher`도 설정해야 합니다.
// https://code.visualstudio.com/docs/editor/tasks#_can-a-background-task-be-used-as-a-prelaunchtask-in-launchjson을 참조하십시오.
"isBackground": true,
// 이 부분을 자신의 `beforeDevCommand`에 맞게 변경합니다:
"command": "yarn",
"args": ["dev"]
},
{
"label": "ui:build",
"type": "shell",
// 이 부분을 자신의 `beforeBuildCommand`에 맞게 변경합니다:
"command": "yarn",
"args": ["build"]
}
]
}

이제 src-tauri/src/main.rs나 다른 Rust 파일에 중단점을 설정하고 F5를 눌러 디버깅을 시작할 수 있습니다.

“Visual Studio Windows Debugger”는 Windows 전용 디버거로, 일반적으로 vscode-lldb보다 빠르며 열거형(enums)과 같은 일부 Rust 기능 지원도 우수합니다.

C/C++ 확장 기능을 설치하고 https://code.visualstudio.com/docs/cpp/config-msvc#_prerequisites에 따라 Visual Studio Windows Debuger를 설치하십시오.

.vscode/launch.json
{
// VS Code의 IntelliSense 입력 지원 기능을 사용하여 사용 가능한 속성에 대해 알아보십시오.
// 마우스를 기존 속성 위에 놓으면 해당 설명이 표시됩니다.
// 자세한 내용은 https://go.microsoft.com/fwlink/?linkid=830387을 참조하십시오.
"version": "0.2.0",
"configurations": [
{
"name": "Launch App Debug",
"type": "cppvsdbg",
"request": "launch",
// 실행 파일(exe) 이름을 실제로 사용하는 exe 파일 이름으로 변경하십시오.
// "릴리스 빌드"(공개판)를 디버깅하려면 `target/debug`를 `release/debug`로 변경하십시오.)
"program": "${workspaceRoot}/src-tauri/target/debug/your-app-name-here.exe",
"cwd": "${workspaceRoot}",
"preLaunchTask": "ui:dev"
}
]
}

Tauri CLI는 사용되지 않으므로 CLI 고유의 기능은 실행되지 않습니다. tasks.jsonlldb의 경우와 동일하지만, 시작 전에 항상 컴파일하고 싶다면 설정 그룹을 추가하여 자신의 preLaunchTasklaunch.json에서 tasks.json으로 타겟팅해야 합니다.

다음은 개발 서버(beforeDevCommand에 해당)와 컴파일(cargo build)을 그룹으로 실행하는 사례입니다. 이를 사용하려면 launch.jsonpreLaunchTask 설정을 dev(또는 그룹에 붙인 이름)로 변경합니다.

.vscode/tasks.json
{
// tasks.json 형식에 대한 문서는
// https://go.microsoft.com/fwlink/?LinkId=733558을 참조하십시오.
"version": "2.0.0",
"tasks": [
{
"label": "build:debug",
"type": "cargo",
"command": "build",
"options": {
"cwd": "${workspaceRoot}/src-tauri"
}
},
{
"label": "ui:dev",
"type": "shell",
// `dev`는 백그라운드에서 실행이 계속됩니다.
// 이상적으로는 `problemMatcher`도 설정해야 합니다.
// https://code.visualstudio.com/docs/editor/tasks#_can-a-background-task-be-used-as-a-prelaunchtask-in-launchjson을 참조하십시오.
"isBackground": true,
// 이 부분을 자신의 `beforeBuildCommand`에 맞게 변경합니다:
"command": "yarn",
"args": ["dev"]
},
{
"label": "dev",
"dependsOn": ["build:debug", "ui:dev"],
"group": {
"kind": "build"
}
}
]
}

【※ 이 한국어판은, 「Jul 23, 2024 영문판」에 근거하고 있습니다】


© 2025 Tauri Contributors. CC-BY / MIT