# Debug

## Avviare il debug

Il supporto del debug è fornito per Assembly, SDCC e Microbe, quando sono aperti come un documento di testo. Da qui, lo stepping è controllato tramite il menu Debug. Esistono due metodi di avviare il debugger.

Se il programma PIC è già in esecuzione in un circuito, facendo doppio clic sul componente PIC si aprirà il programma. Per i programmi PIC assembly, il debugger per quel documento di testo sarà collegato al componente PIC. In questo caso, il menu di debug non può arrestare il programma PIC, poiché appartiene al componente PIC.

Se il file assembly è già aperto, è possibile eseguire il debugger tramite il menu Debug. Dopo aver compilato il programma, il debugger sarà pronto, con il programma PIC in pausa alla prima istruzione. Si noti che quando si esegue il debug di linguaggi di alto livello, il punto di esecuzione attuale non sarà mostrato se non vi è alcuna linea corrispondente alla prima istruzione assembly da eseguire. In questo caso, facendo clic su Avanti si porterà il punto di esecuzione alla prima riga del programma.

## Controllare il debugger

Il debugger può essere in una delle due modalità: esecuzione e stepping. Durante l'esecuzione, il programma PIC sarà simulato in tempo reale. Per consentire lo stepping, il programma PIC deve essere messo in pausa - facendo clic su Interrompi nel menu Debug o facendo clic sul pulsante Pausa sul componente PIC.

Nella modalità di stepping, una freccia verde a margine del documento di testo indica la riga successiva da eseguire (familiare agli utenti di KDevelop). Può essere utile attivare il bordo dell'icona tramite il menu Visualizza (può essere attivato permanentemente tramite la finestra Impostazioni dell'editor).

Esistono tre tipi di stepping:

- Step - Questo esegue l'istruzione attuale. La freccia verde è spostata sulla riga successiva da eseguire.

- Step Over - Se l'istruzione successiva da eseguire è una chiamata o simile, allora questa «passa sulla» chiamata, tornando alla modalità di stepping dopo che la chiamata è restituita. Altrimenti, lo step over di un'istruzione si comporta in modo identico a step. Per dirlo tecnicamente: il livello iniziale dello stack viene registrato e l'esecuzione del programma viene messa in pausa quando il livello dello stack torna al livello iniziale.

- Step Out - Se l'esecuzione attuale si trova all'interno di una chiamata o simile, ciò attenderà fino alla restituzione della chiamata. Analogamente allo step over, questo equivale ad attendere fino a quando il livello dello stack non torna a uno in meno del livello iniziale, se il livello iniziale è maggiore di zero.

I punti di interruzione consentono di mettere in pausa l'esecuzione quando il programma PIC raggiunge una determinata istruzione. Per attivare o disattivare un punto di interruzione sulla riga contenente il cursore, utilizzare il menu Debug o fare clic sul bordo dell'icona del documento di testo.

La barra laterale Visore dei simboli sulla destra mostra i valori dei registri delle funzioni speciali. Per scoprire il valore di una variabile nei registri di uso generico, è possibile passare il puntatore del mouse sul nome della variabile in un'istruzione che opera su quel registro. Notare che la selezione di base nel Visore dei simboli controlla anche come viene visualizzato il valore quando si passa sopra una variabile.