WasTabon
@WasTabon

Как дебажить Rust в vscode?

61e1dec4f0270105917180.png
Скачал вот такие расширения, или дело не в них? 61e1dedb36ce3691024801.png
Вот код
fn main() {
    println!("Hello Rust!");
}

После нажатия на ОК кидает сюда 61e1df040de3b104435208.png
  • Вопрос задан
  • 365 просмотров
Решения вопроса 2
vabka
@vabka
Токсичный шарпист
Что-то ты намудрил с расширениями.
1. Rust-analyzer нельзя сочетать с обычным Rust-плагином.
2. Вместо пака расширений лучше самому всё по отдельности ставить.
Для отладки нужно lldb расширение.

После этого rust-analyzer сам создаст тебе конфиг для отладки, при первой попытке дебага.

Чуть более подробное решение из моего коммента

WasTabon, в общем вот список моих екстеншенов (копировал extension id чтобы легко можно было найти):
  • vadimcn.vscode-lldb (для отладки)
  • bungcip.better-toml (чтобы была подсветка в cargo.toml)
  • serayuzgur.crates (для автодополнения имён и версий пакетов)
  • matklad.rust-analyzer (самое главное)
  • swellaby.vscode-rust-test-adapter (чтобы тесты запускать через боковую панель)
  • jscearcy.rust-doc-viewer (чтобы документацию удобнее смотреть)

Все остальные расширения советую удалить дабы точно не было конфликтов.
Вот мои файлы когда только создал проект:
61e318cebdcb5121332621.png
Rust-analyzer сразу добавил линзу "Debug" около мейна, жму на неё.
61e31954758f4949494249.png
И вот результат, всё работает:
61e31968d2461592787549.png

PS:
❯ cargo -V
cargo 1.58.0 (7f08ace4f 2021-11-24)
❯ rustup toolchain list
stable-x86_64-pc-windows-msvc (default)

PPS: о launch.json
Вот тут есть вполне очевидная кнопка/ссылка "create a launch.json file"
61e319fccc515317499730.png
При её нажатии возникает вполне понятный вопрос:
61e31a574f1fc385427254.png
Если на него ответить "Yes", то в папке .vscode появится файл launch.json с вот таким содержимым:
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "lldb",
            "request": "launch",
            "name": "Debug executable 'rust-demo'",
            "cargo": {
                "args": [
                    "build",
                    "--bin=rust-demo",
                    "--package=rust-demo"
                ],
                "filter": {
                    "name": "rust-demo",
                    "kind": "bin"
                }
            },
            "args": [],
            "cwd": "${workspaceFolder}"
        },
        {
            "type": "lldb",
            "request": "launch",
            "name": "Debug unit tests in executable 'rust-demo'",
            "cargo": {
                "args": [
                    "test",
                    "--no-run",
                    "--bin=rust-demo",
                    "--package=rust-demo"
                ],
                "filter": {
                    "name": "rust-demo",
                    "kind": "bin"
                }
            },
            "args": [],
            "cwd": "${workspaceFolder}"
        }
    ]
}

Тут у нас появляется две конфигурации - одна для запуска приложения, а другая для запуска тестов.
61e31abfa7315157464415.png
Работает эта шняга абсолютно также, как показал выше.
UPD: оформил в виде статьи https://habr.com/ru/post/645797/
Ответ написан
WasTabon
@WasTabon Автор вопроса
Кароче ну нафик это все, скачал Intellij IDEA, пофиксил ошибку по этому гайду https://www.jaacostan.com/2019/12/rust-error-linke... и сижу кайфую, и вам советую
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы