# VS Code Configuration Questa directory contiene le configurazioni per sviluppo e debug del progetto in VS Code. ## File di Configurazione ### launch.json Configurazioni di debug per inverter-cli con GDB: - Debug con build Release - Debug con build completa (simboli debug) - Debug in modalità loop - Debug comandi raw - Attach a processo esistente ### tasks.json Task automatizzati per: - Build (Release/Debug) - Clean e Rebuild - Esecuzione diretta - Gestione container Docker ### c_cpp_properties.json Configurazione IntelliSense per C/C++: - Include paths - Standard C++11 - Compiler settings ### settings.json Impostazioni workspace: - Configurazione CMake - File associations - Esclusioni ricerca e explorer ### extensions.json Estensioni raccomandate per il progetto: - C/C++ tools - CMake tools - Docker - ShellCheck - YAML support ## Quick Start ### Prima Build 1. Apri il progetto in VS Code: ```bash code /home/pi/Progetti ``` 2. Installa estensioni raccomandate (popup VS Code) 3. Build del progetto: - Premi `Ctrl+Shift+B` per build default - Oppure `Tasks: Run Task` → `build-inverter-cli-debug` ### Debug Rapido 1. Apri `sources/inverter-cli/main.cpp` 2. Imposta breakpoint (F9 su riga) 3. Premi `F5` e seleziona configurazione debug 4. Usa `F10` (step over) e `F11` (step into) ### Testare Modifiche 1. Modifica codice in `sources/inverter-cli/` 2. Build: `Ctrl+Shift+B` 3. Run: Tasks → `run-inverter-cli-once` 4. Verifica output JSON ## Documentazione Dettagliata Vedi [DEBUG.md](DEBUG.md) per guida completa al debug e troubleshooting. ## Configurazioni Disponibili ### Debug Configurations (F5) - **(gdb) Debug inverter_poller** - Debug rapido con Release build - **(gdb) Debug inverter_poller - Run Once with Debug** - Debug completo, esecuzione singola - **(gdb) Debug inverter_poller - Loop Mode** - Debug in modalità continua - **(gdb) Debug inverter_poller - Raw Command** - Debug comandi specifici - **(gdb) Attach to running inverter_poller** - Attach a processo esistente ### Build Tasks (Ctrl+Shift+B) - **build-inverter-cli** (default) - Build Release ottimizzato - **build-inverter-cli-debug** - Build con simboli debug - **clean-inverter-cli** - Pulizia file di build - **rebuild-inverter-cli** - Clean + Build ### Run Tasks - **run-inverter-cli-once** - Esegui una volta - **run-inverter-cli-loop** - Esegui in loop - **docker-build** - Build immagine Docker - **docker-run** - Avvia container - **docker-logs** - Visualizza log container - **docker-stop** - Ferma container ## Shortcuts Utili | Shortcut | Azione | |----------|--------| | `F5` | Start Debugging | | `Ctrl+F5` | Run Without Debugging | | `F9` | Toggle Breakpoint | | `F10` | Step Over | | `F11` | Step Into | | `Shift+F11` | Step Out | | `Ctrl+Shift+B` | Run Build Task | | `Ctrl+Shift+P` | Command Palette | | `Ctrl+` ` | Toggle Terminal | ## Estensioni Consigliate ### Essenziali - **C/C++** - IntelliSense, debugging, browsing - **CMake Tools** - Integrazione CMake ### Utili - **Docker** - Gestione container - **ShellCheck** - Linting script bash - **YAML** - Syntax per configurazioni ### Opzionali - **GitHub Copilot** - AI code assistant - **GitLens** - Git supercharged ## Troubleshooting ### IntelliSense non funziona 1. Ricarica window: `Ctrl+Shift+P` → "Reload Window" 2. Verifica estensione C/C++ installata 3. Build il progetto almeno una volta ### GDB non trovato ```bash sudo apt-get install gdb ``` ### Permission denied su device ```bash sudo usermod -a -G dialout $USER # Logout e login necessari ``` ### Task build fallisce ```bash cd sources/inverter-cli rm -rf CMakeFiles CMakeCache.txt cmake . && make ``` ## Tips 1. **Multiple Debug Windows**: Puoi avere più configurazioni debug attive contemporaneamente 2. **Watch Variables**: Usa il pannello Watch per monitorare variabili durante debug 3. **Debug Console**: Esegui comandi GDB direttamente nel Debug Console 4. **Logpoints**: Usa logpoints invece di printf per non modificare codice ## Risorse - [VS Code C++ Docs](https://code.visualstudio.com/docs/cpp/cpp-debug) - [CMake Tools Extension](https://github.com/microsoft/vscode-cmake-tools) - [GDB Documentation](https://sourceware.org/gdb/documentation/) - [DEBUG.md](DEBUG.md) - Guida debug completa del progetto