W
W
WasTabon2022-01-14 23:37:25
Rust
WasTabon, 2022-01-14 23:37:25

How to debug Rust in vscode?

61e1dec4f0270105917180.png
Have you downloaded these extensions, or is it not about them? 61e1dedb36ce3691024801.png
Here is the code

fn main() {
    println!("Hello Rust!");
}

After clicking on OK throws here61e1df040de3b104435208.png

Answer the question

In order to leave comments, you need to log in

1 answer(s)
V
Vasily Bannikov, 2022-01-15
@WasTabon

Something you've done with the extensions.
1. Rust-analyzer cannot be combined with a regular Rust plugin.
2. Instead of a pack of extensions, it's better to install everything yourself separately.
Debugging requires the lldb extension.
After that, rust-analyzer will create a debugging config for you the first time you try to debug.

Slightly more detailed solution from my comment

WasTabon , in general, here is a list of my extensions (I copied the extension id so that you can easily find it):
  • vadimcn.vscode-lldb (for debugging)
  • bungcip.better-toml (for highlighting in 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/

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question