Intellij Idea - Debug

Il debugger semplifica notevolmente il debug delle applicazioni. Usando il debugger, possiamo interrompere l'esecuzione del programma a un certo punto, ispezionare le variabili, entrare in funzione e fare molte cose. IntelliJ fornisce un debugger Java integrato.

Punti di interruzione

Il punto di interruzione consente di interrompere l'esecuzione del programma in un determinato punto. I punti di interruzione possono essere impostati passando il mouse sull'area di rilegatura dell'Editor e facendo clic su di essa.

I punti di interruzione sono indicati utilizzando i simboli del cerchio rosso. Considera il punto di interruzione impostato alla riga 3.

Considera i seguenti passaggi per capire di più su come funzionano i punti di interruzione:

  • Fare clic con il tasto destro sul simbolo del cerchio rosso.

  • Seleziona il More opzioni.

  • Per rimuovere il punto di interruzione è sufficiente fare clic sullo stesso simbolo.

Segui questi passaggi per avviare il debugger:

  • Vai al menu Esegui.
  • Seleziona l'opzione Debug.

Entra

Durante il debug, se viene rilevata una funzione e viene selezionato un passaggio all'azione, il debugger interromperà l'esecuzione del programma in ogni punto di quella funzione come se il debug fosse abilitato per quella funzione.

Ad esempio, quando l'esecuzione del programma raggiunge la riga 9 e se selezioniamo il passaggio in azione, interrompe l'esecuzione su ciascuna riga del sayGoodBye() funzione.

Uscire

L'azione Step out è esattamente l'opposto di Step in action. Ad esempio, se esegui l'azione di uscita con lo scenario precedente, il debugger tornerà dal filesayGoodBye() metodo e inizia l'esecuzione dalla riga 10.

Scavalcare

L'azione Step over non entra invece in funzione, salterà alla riga di codice successiva. Ad esempio, se ti trovi alla riga 9 ed esegui l'azione di passaggio, si sposterà l'esecuzione alla riga 10.

Riprendi il programma

L'azione Riprendi programma continuerà l'esecuzione del programma ignorando tutti i punti di interruzione.

Interrompi l'azione

L'azione Stop aiuta a fermare il debugger.

Entra in modo intelligente

Durante il debug, a volte possiamo raggiungere una riga di codice che chiama diversi metodi. Quando si esegue il debug di queste righe di codice, il debugger in genere ci consente di utilizzarestep intoe ci conduce attraverso tutte le funzioni figlio e poi di nuovo alla funzione genitore. Tuttavia, cosa succederebbe se volessimo solo entrare in una funzione figlio? Con Smart step-into, ci permette di scegliere la funzione in cui entrare.

Ora, creiamo una classe Java con la seguente riga di codice:

public class HelloWorld {
   public static void main(String[] args) {
      allFunctions();
   }
   static void allFunctions() {
      System.out.println(function1() + " " + function2() + " " + function3());
   }
   static String function1() {
      return "function1";
   }
   static String function2() {
      return "function2";
   }
   static String function3() {
      return "function3";
   }
}

Nel codice sopra, allFunctions()chiama altre 3 funzioni. Impostiamo il punto di interruzione in questa funzione. Segui questi passaggi per eseguire un passaggio intelligente in:

  • Vai a correre
  • Seleziona Smart Step into.
  • Seleziona la funzione figlio per andare.

Ispezione delle variabili

Durante il debug, IntelliJ mostra il valore della variabile nella finestra dell'editor stessa. Possiamo anche visualizzare le stesse informazioni nella finestra Debug.

Valuta l'espressione

Valuta espressione consente di valutare l'espressione al volo. Segui questi passaggi per eseguire questa azione:

  • Avvia l'applicazione nel debugger

  • Navigare verso Run->Evaluate espressione.

  • Inserisci espressione. Nell'esempio riportato di seguito, il valore corrente della variabile "i" è 0; quindi, l'espressione "i> 100" restituirà false