Archivio per agosto 2019
Debugging Rust with VS code
Ho da poco iniziato a sviluppare con Rust e la scelta dell’editor è ricaduta senza troppi pensieri (confermata anche da commenti) su Visual Studio Code.
Ovviamente per avere syntax highlighting, intellisense, refactoring… è necessario installare l’extension di rust:

Inizializziamo un nuovo progetto usando cargo:
cargo new rust_debug_test
E ora configuriamo gli strumenti per debuggare.
1. Plugin C/C++
Di default Rust su windows usa MSVC, è quindi necessario utilizzare l’extension apposita:

2. Aggiungiamo un task per compilare
Prima di poter debuggare la nostra applicazione è necessario compilarla. E’ necessario quindi configurare un task che esegua questa operazione.
Per farlo in modo semplice, apriamo il nostro file src/main.rs in VS code in modo che il plugin crei le strutture di contorno e ci permetta di selezionare velocemente il task appropriato:
CTRL-SHIFT+p
Tasks: Configure task
Rust: Cargo build
nel file tasks.json creato, andiamo ad aggiungere il nome del task che verrà utilizzato successivamente per identificarlo:
{ "version": "2.0.0", "tasks": [ { "label": "build_application", "type": "cargo", "subcommand": "build", "problemMatcher": [ "$rustc" ] } ] }
Non ci resta che configurare la configurazione di debug nel file launch.json
3. Launch configuration
Per scaffoldare la nostra configurazione basta
Debug menu --> Add configuration C++ (Windows)
E modificare la configurazione come segue:
{ "version": "0.2.0", "configurations": [ { "preLaunchTask": "build_application", "name": "(Windows) Launch", "type": "cppvsdbg", "request": "launch", "program": "${workspaceFolder}/target/debug/rust_debug_test.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false } ] }
dove:
- preLaunchTask è il nome del task dato in precedenza per compilare
- program è il nome dell’eseguibile compilato con cargo, ovvero il nome del package presente nel file cargo.toml
4. F5

and that’s it!