JDB - Guida rapida

Il debug è una procedura tecnica per trovare e rimuovere bug o difetti in un programma e ottenere i risultati attesi. Il debug include test e monitoraggio. È molto complesso quando le subunità di un programma sono strettamente accoppiate. Possiamo eseguire il debug di un programma utilizzando gli strumenti del debugger che seguono le API prescritte. Un debugger ti consente di esaminare ogni aspetto di un codice, ispezionare tutti gli elementi e rimuovere eventuali errori.

Tecniche di debug

Esistono diversi tipi di tecniche per eseguire il debug di un programma Java. Il vecchio metodo di debug consiste nell'usare le istruzioni print alla fine di ogni segmento che stamperanno le istruzioni trace sulla console. Dai un'occhiata al seguente codice.

pubic class Add
{
   public static void main(String ar[])
   {
      int a=ar[0];
      system.out.println("A : " +a);
      int b=ar[1];
      system.out.println("B : " +b);
      int c = a + b;
      system.out.println("C = a + b : " +c);
   }
}

Qui abbiamo un programma che aggiunge due numeri e stampa l'output. Si noti che ad ogni passaggio abbiamo introdotto un'istruzione print che stampa lo stato del programma sulla console. Questo è l'approccio tradizionale per eseguire il debug di un programma.

Inoltre, abbiamo concetti avanzati che possono essere utilizzati per eseguire il debug di un programma come:

  • stepping
  • punti di interruzione e
  • eccezioni o punti di controllo.

Tipi di debug

Possiamo eseguire il debug di un programma utilizzando vari metodi:

  • Utilizzo del bytecode Java (versione compilata del codice Java)
  • Utilizzo dei commenti all'interno dei programmi
  • Collegamento di una classe a un programma in esecuzione
  • Debug remoto
  • Debug su richiesta
  • Debug del codice ottimizzato

Debugger Java

Ecco alcuni esempi di debugger Java disponibili sul mercato:

  • IDE come Eclipse, Netbeans, ecc. Contengono i propri debugger (Visual cafe, Borland, JBuilder)
  • GUI del debugger autonome (come Jikes, debugger della piattaforma Java e JProbe)
  • Debugger della riga di comando (JDB di Sun)
  • Blocco note o VI guidato (traccia dello stack)

Questo tutorial spiega come utilizzare il debugger della riga di comando, jdb.

JDB

Il debugger Java (JDB) è uno strumento per le classi Java per eseguire il debug di un programma nella riga di comando. Implementa l'architettura del debugger della piattaforma Java. Aiuta a rilevare e correggere i bug in un programma Java utilizzando Java Debug Interface (JDI).

JDB in JDK

La seguente architettura definisce il ruolo di JDB in JDK. Contiene principalmente tre unità:

  • Interfaccia Java Virtual Machine Tool (JVM TI)
  • Java Debug Wiring Pool (JDWP)
  • Java Debugger Interface (JDI)

JVM TI

È un'interfaccia di programmazione nativa implementata da VM. Fornisce modi per ispezionare ed eseguire il debug dello stato dell'applicazione in esecuzione sulla VM. Consente a un implementatore (VM Implementer) che può essere facilmente incluso nell'architettura di debug. Utilizza anche un canale di terze parti chiamatoJDWP per la comunicazione.

JDWP

Definisce il formato delle informazioni e delle richieste che passano tra il processo del debugger e il front-end del debugger. Lo scopo principale di avere un JDWP è consentire al debuggee e al debugger di comunicare quando vengono eseguiti su VM separate o su piattaforme separate.

JDI

È un'interfaccia Java di alto livello implementata come front-end. Definisce le informazioni sulla variabile a livello di codice utente. Si consiglia di utilizzare un livello JDI per tutto lo sviluppo del debugger. Utilizza JDWP per la comunicazione con la JVM oggetto del debug.

Questo capitolo spiega come installare JDB su sistemi basati su Windows e Linux. JDB fa parte di JDK. Pertanto, l'installazione di JDK è sufficiente per utilizzare JDB nel prompt dei comandi.

Requisiti di sistema

Ecco i requisiti di sistema per l'installazione di JDB:

JDK Java SE 2 JDK 1.5 o successivo
Memoria 1 GB di RAM (consigliato)
Spazio sul disco Nessun requisito minimo
Versione del sistema operativo Windows XP o successivo, Linux

Segui i semplici passaggi indicati di seguito per installare JDB sul tuo sistema.

Passaggio 1: verifica dell'installazione di Java

Prima di tutto, devi avere Java Software Development Kit (SDK) installato sul tuo sistema. Per verificarlo, esegui uno dei due comandi a seconda della piattaforma su cui stai lavorando.

Se l'installazione di Java è stata eseguita correttamente, visualizza la versione corrente e le specifiche dell'installazione di Java. Un output di esempio è fornito nella tabella seguente.

piattaforma Comando Output di esempio
finestre

Apri la console dei comandi e digita:

\>java –version

Versione Java "1.7.0_60"

Java (TM) SE Run Time Environment (build 1.7.0_60-b19)

VM server Java Hotspot (TM) a 64 bit (build 24.60-b09, modalità mista)

Linux

Apri il terminale di comando e digita:

$java –version

versione java "1.7.0_25"

Aprire JDK Runtime Environment (rhel-2.3.10.4.el6_4-x86_64)

Apri la VM server JDK a 64 bit (build 23.7-b01, modalità mista)

Si presume che i lettori di questo tutorial abbiano Java SDK versione 1.7.0_60 installato sul proprio sistema. Nel caso in cui non si disponga di Java SDK, scaricare la versione corrente dal collegamentohttp://www.oracle.com/technetwork/java/javase/downloads/index.html e installalo.

Passaggio 2: configurazione dell'ambiente Java

Impostare la variabile d'ambiente JAVA_HOME in modo che punti alla posizione della directory di base in cui Java è installato sulla macchina. Per esempio,

piattaforma Descrizione
finestre impostare JAVA_HOME su C: \ ProgramFiles \ java \ jdk1.7.0_60
Linux esporta JAVA_HOME = / usr / local / java

Aggiungi il percorso completo della posizione del compilatore Java al percorso di sistema.

piattaforma Descrizione
finestre Aggiungi la stringa "C: \ Programmi \ Java \ jdk1.7.0_60 \ bin" alla fine della variabile di sistema PATH.
Linux export PATH = $ PATH: $ JAVA_HOME / bin /

Esegui il comando java -version dal prompt dei comandi come spiegato sopra.

Passaggio 3: verifica dell'installazione di JDB

Verificare la versione JDB come segue:

piattaforma Comando Output di esempio
finestre

Apri la console dei comandi e digita:

\>jdb –version

Questa è JDB versione 1.6 (Java SE versione 1.7.0_60)
Linux

Apri il terminale di comando e digita:

$jdb –version

Questa è JDB versione 1.6 (Java SE versione 1.7.0_60)

Questo capitolo spiega la sintassi del comando JDB. La sintassi contiene quattro sezioni elencate come segue:

  • JDB
  • option
  • class
  • arguments

Sintassi

La sintassi di JDB è la seguente.

jdb [ options ] [ class ] [ arguments ]

JDB

Chiama jdb.exe dal Java Development Kit.

Opzioni

Questi includono le opzioni della riga di comando utilizzate per eseguire il debug di un programma Java in modo efficiente. Il programma di avvio JDB accetta tutte le opzioni (come -D, -classpath e -X) e alcune opzioni avanzate aggiuntive come (-attach, -listen, -launch, ecc.).

Classe

È il nome della classe su cui si desidera eseguire le operazioni di debug.

argomenti

Questi sono i valori di input forniti a un programma in fase di esecuzione. Ad esempio, arg [0], arg [1] al metodo main ().

Nei quattro segmenti precedenti, le opzioni sono le più importanti.

Questo capitolo descrive le opzioni importanti disponibili in JDB che vengono inviate come argomenti con il comando jdb.

Opzioni

La tabella seguente contiene un elenco di opzioni accettate da JDB:

Nome Descrizione
-Aiuto Visualizza il messaggio della guida ed elenca le opzioni correlate.
-sourcepath Utilizza il percorso specificato per i file di origine se il percorso non è specificato, quindi utilizza il percorso predefinito ".", Ovvero la directory corrente.
-attaccare Collega il debugger alla VM in esecuzione specificando l'indirizzo della VM in esecuzione.
-ascolta Attende che la VM in esecuzione si connetta utilizzando il connettore standard.
-listenany Attende che la VM in esecuzione si connetta utilizzando qualsiasi indirizzo.
-lanciare Avvia l'applicazione sottoposta a debug immediatamente all'avvio del lavoro.
-listconnectors Elenca i connettori disponibili in questa VM.
-Collegare Si connette alla VM di destinazione utilizzando il connettore denominato con i valori degli argomenti elencati.
-dbgtrace Stampa le informazioni per il debug di jdb.
-tclient Esegue l'applicazione in Java Hotspot VM (client).
-tserver Esegue l'applicazione in Java Hotspot VM (server).
-Joption Passa l'opzione alla Java virtual machine utilizzata per eseguire JDB.

Utilizzo delle opzioni con i comandi

I seguenti comandi mostrano come utilizzare alcune delle opzioni precedenti:

-Aiuto

Il comando seguente ottiene -help sull'utilizzo di JDB.

\>jdb -help

-attaccare

Il comando seguente collega il debugger a una VM specificata (numero di porta: 1099).

\> jdb -attach 1099

-ascolta

Il comando seguente fa attendere il processo JDB in esecuzione sulla VM corrente utilizzando il connettore standard (VM in 8008).

\>jdb -listen 8088

-listenany

Il comando seguente fa in modo che il processo JDB in esecuzione sulla VM corrente attenda utilizzando qualsiasi connettore (VM nella porta attualmente in esecuzione).

\>jdb –listenany

-tclient

Il seguente comando esegue l'applicazione in Java Hotspot (™) VM (client).

\>jdb –tclient

-tserver

Il seguente comando esegue l'applicazione in Java Hotspot (™) VM (server).

\>jdb -tserver

Questo capitolo descrive come avviare una sessione JDB in diversi modi. L'avvio di JDB è la tecnica utilizzata di frequente per avviare una sessione JDB.

Esistono due modi diversi per avviare una sessione JDB:

  • Avvio della sessione JDB aggiungendovi la classe (nome della classe principale).
  • Aggiunta di JDB all'esecuzione di JVM per avviare la sessione.

Avvia una sessione aggiungendo una classe

Il seguente comando avvia una sessione JDB:

Sintassi

\>jdb <classname>

Esempio

Supponiamo di avere una classe denominata TestClass. Il comando seguente avvia una sessione JDB da TestClass.

\>jdb TestClass

Se segui questo comando, avvia una nuova Java VM con i parametri specificati. Successivamente carica la classe e la interrompe prima di eseguire la prima istruzione della classe.

Avvia una sessione aggiungendo JDB a una JVM in esecuzione

Di seguito sono riportati la sintassi e l'esempio per avviare una sessione JDB aggiungendo JDB a una JVM in esecuzione.

Sintassi

La sintassi seguente è per la sessione JDB:

-agentlib:jdwp=transport=dt_shmem,address=
      
       ,server=y,suspend=n 
      

Esempio

Supponiamo che il nome della classe principale sia TestClasse JVM consente a JDB di collegarlo in seguito. Di seguito è riportato il comando per aggiungere JDB a JVM:

\>java
-agentlib:jdwp=transport=dt_shmem,address=jdbconn,server=y,suspend=n TestClass

Ora puoi collegare il JDB alla JVM con il seguente comando:

\> jdb -attach jdbconn

Note: Qui, il TestClass non viene aggiunto al comando JDB, perché JDB è connesso alla VM in esecuzione invece di avviarne una nuova.

Questo capitolo illustra i comandi di base di JDB. Dopo aver avviato una sessione, questi comandi vengono utilizzati per eseguire il debug di un programma.

Di seguito è riportato l'elenco dei comandi utilizzati per il debug.

Nome Descrizione
aiuto o? Il più importante JDBcomando; mostra un elenco di comandi riconosciuti con una breve descrizione.
correre Dopo l'avvio JDB e impostando i punti di interruzione necessari, è possibile utilizzare questo comando per avviare l'esecuzione e il debug di un'applicazione.
cont Continua l'esecuzione dell'applicazione di cui è stato eseguito il debug dopo un punto di interruzione, un'eccezione o un passaggio.
Stampa Visualizza oggetti Java e valori primitivi.
discarica Per i valori primitivi, questo comando è identico a print. Per gli oggetti, stampa il valore corrente di ogni campo definito nell'oggetto. I campi statici e istanza sono inclusi.
discussioni Elenca i thread attualmente in esecuzione.
filo Seleziona un thread come thread corrente.
dove Scarica lo stack del thread corrente.

Esempio

Supponiamo di avere una classe campione chiamata Add per i seguenti esempi:

Add.java

public class Add
{
   public int addition( int x, int y)
   {
      int z = x+y;
      return z;
   }
   public static void main( String ar[ ] )
   {
      int a = 5, b = 6;
      Add ob = new Add();
      int c = ob.addition(a,b);
      System.out.println("Add: "+c);
   }
}

Compilare questa classe Add.java utilizzando il seguente comando:

\>javac Add.java

Correre

Questo comando esegue il file di classe principale, che viene aggiunto a JDB per il debug. Eseguire i seguenti comandi per eseguire la classe Add.

\>jdb Add
initializing jdb …
>run

Eseguendo questi comandi, vedrai il seguente output:

Questo capitolo spiega il concetto di breakpoint e come impostare i breakpoint in un programma. Un punto di interruzione introduce un arresto o una pausa esplicita nell'esecuzione di un programma in una particolare riga di codice durante il debug. È utile acquisire conoscenze sulle variabili nel programma nella sua esecuzione.

Sintassi

Il comando seguente imposta un punto di interruzione in un particolare numero di riga:

> stop at <class name>:<Line no>

Il comando seguente imposta un punto di interruzione su un particolare metodo o su una particolare variabile:

> stop in <class name>:< Method name | Variable name>

Esempio

L'esempio seguente mostra come impostare un punto di interruzione in una classe.

public class Add
{
   public int addition( int x, int y)
   {
      int z = x+y;
      return z;
   }
   public static void main( String ar[ ] )
   {
      int a = 5, b = 6;
      Add ob = new Add();
      int c = ob.addition(a,b);
      System.out.println("Add: "+c);
   }
}

Salva il file sopra come Add.java. Compila questo file utilizzando il seguente comando:

\>javac Add.java

Debug

Facciamo un esempio per il debug. Qui, iniziamo il processo di debug impostando un punto di interruzione su main (). Di seguito sono riportati i passaggi da seguire nel processo di debug:

Passaggio 1: avvia una sessione JDB

Il seguente comando avvia una sessione JDB sulla classe Add per il debug:

\> jdb Add

Passaggio 2: impostare un punto di interruzione

Il comando seguente imposta un punto di interruzione sul metodo main () della classe Add.

> stop in Add.main

Se il punto di interruzione è impostato correttamente, viene visualizzato il seguente output:

Deferring breakpoint Add.main.
It will set after the class is loaded.
>

Passaggio 3: avviare il debug

Il seguente comando avvia l'esecuzione della classe Add:

> run Add

Se esegui questo comando, puoi vedere il seguente output. In questo output, si scopre che l'esecuzione si ferma alla posizione del punto di interruzione, cioè alla funzione main ().

L'esecuzione si ferma alla prima riga del metodo principale, cioè a "int a = 5, b = 6;" o Riga n .: 11 nel codice. È possibile osservare queste informazioni nell'output.

Passaggio 4: continuare l'esecuzione

Il seguente comando continua l'esecuzione del programma:

cont

Ti dà la parte di esecuzione rimanente e l'output come segue:

> Add:11
The application exited
\>

Questo capitolo spiega come utilizzare il concetto di Stepping nel debug di un programma. Stepping è la funzionalità del debugger che consente di eseguire il codice scorrendo riga per riga. Usando questo, puoi esaminare ogni riga del codice per assicurarti che si comportino come previsto.

I seguenti comandi vengono utilizzati nel processo di stepping:

  • passo: passa alla riga di esecuzione successiva
  • list: esamina dove ti trovi nel codice
  • cont: continua l'esecuzione rimanente

Esempio

L'esempio seguente utilizza la classe Add che abbiamo utilizzato nel capitolo precedente:

public class Add
{
   public int addition( int x, int y)
   {
      int z = x+y;
      return z;
   }
   public static void main( String ar[ ] )
   {
      int a = 5, b = 6;
      Add ob = new Add();
      int c = ob.addition(a,b);
      System.out.println("Add: "+c);
   }
}

Salva il file sopra come Add.java. Compila questo file utilizzando il seguente comando:

\>javac Add.java

Supponiamo che il punto di interruzione sia impostato sul metodo main () della classe Add. I passaggi seguenti mostrano come applicare lo stepping nella classe Add.

Passaggio 1: eseguire il lavoro

Il comando seguente avvia l'esecuzione della classe denominata Add.

> run Add

Se esegui questo comando, vedrai il seguente output. In questo output, puoi scoprire che l'esecuzione si ferma alla posizione del breakpoint, cioè al metodo main ().

L'esecuzione si ferma alla prima riga del metodo principale, cioè a "int a = 5, b = 6;" o Riga n .: 11 nel codice. È possibile osservare queste informazioni nell'output.

Passaggio 2: scorrere il codice

Il comando seguente fa passare l'esecuzione alla riga successiva.

main[1] step

Ora l'esecuzione passa alla riga no: 12. Si arriva a vedere il seguente output.

Passaggio 3: elenca il codice

Il comando seguente elenca il codice:

main[1] list

Ottieni il seguente output. Il comando List viene utilizzato per farti conoscere la riga nel codice fino alla quale è arrivato il controllo del programma. Notare il segno di freccia => nella schermata seguente che mostra la posizione corrente del controllo del programma.

Passaggio 4: continuare l'esecuzione

Il seguente comando continua a eseguire il codice:

main[1] cont

Questo comando continua a eseguire le restanti righe del codice. L'output è come mostrato di seguito:

> Add:11
The application exited
\>

In generale, ci sono tre tipi di stepping:

  • Entra
  • Scavalcare
  • Uscire

Entra

Usando questo comando, puoi passare alla riga successiva del codice. Se la riga successiva del codice è una chiamata di funzione, entra nella funzione guidando il controllo nella riga superiore della funzione.

Nel codice seguente, il segno di freccia definisce il controller nel codice.

public class Add
{
   public int addition( int x, int y)
   {
      int z = x+y;
      return z;
   }
   public static void main( String ar[ ] )
   {
      int a = 5, b = 6;
      -> Add ob = new Add();
      int c = ob.addition(a,b);
      System.out.println("Add: "+c);
   }
}

Se usi l'estensione step intocomando, il controller si sposta alla riga successiva, ovvero "int c = ob.addition (a, b);". A questa riga, c'è una chiamata di funzioneaddition(int, int) quindi il controller si sposta sulla riga più in alto della funzione di aggiunta con il segno di freccia come mostrato di seguito:

public class Add
{
   public int addition( int x, int y)
   -> {
      int z = x+y;
      return z;
   }
   public static void main( String ar[ ] )
   {
      int a = 5, b = 6;
      Add ob = new Add();
      int c = ob.addition(a,b);
   System.out.println("Add: "+c);
   }
}

Scavalcare

Step Over esegue anche la riga successiva. Ma se la riga successiva è una chiamata di funzione, esegue quella funzione in background e restituisce il risultato.

Facciamo un esempio. Nel codice seguente, il segno di freccia definisce il controllo nel codice.

public class Add
{
   public int addition( int x, int y)
   {
      int z = x+y;
      return z;
   }
   public static void main( String ar[ ] )
   {
      int a = 5, b = 6;
      -> Add ob = new Add();
      int c = ob.addition(a,b);
      System.out.println("Add: "+c);
   }
}

Se usi l'estensione step overcomando, il controllo si sposta alla riga successiva, ovvero "int c = ob.addition (a, b);". In questa riga, c'è una chiamata di funzioneaddition(int, int) quindi l'esecuzione della funzione viene eseguita in background e il risultato viene restituito alla riga corrente con il segno di freccia come mostrato di seguito:

public class Add
{
   public int addition( int x, int y)
   {
      int z = x+y;
      return z;
   }
   public static void main( String ar[ ] )
   {
      int a = 5, b = 6;
      Add ob = new Add();
      -> int c = ob.addition(a,b);
      System.out.println("Add: "+c);
   }
}

Uscire

Step Out esegue la riga successiva. Se la riga successiva è una chiamata di funzione, la salta e l'esecuzione della funzione continua con le righe rimanenti del codice.

Facciamo un esempio. Nel codice seguente, il segno di freccia definisce il controller nel codice.

public class Add
{
   public int addition( int x, int y)
   {
      int z = x+y;
      return z;
   }
   public static void main( String ar[ ] )
   {
      int a = 5, b = 6;
      -> Add ob = new Add();
      int c = ob.addition(a,b);
      System.out.println("Add: "+c);
   }
}

Se usi l'estensione step outcomando, il controller si sposta alla riga successiva, ovvero "int c = ob.addition (a, b);". In questa riga, c'è una chiamata di funzioneaddition(int, int) quindi l'esecuzione della funzione viene saltata e l'esecuzione rimanente continua con il segno di freccia come mostrato di seguito:

public class Add
{
   public int addition( int x, int y)
   {
      int z = x+y;
      return z;
   }
   public static void main( String ar[ ] )
   {
      int a = 5, b = 6;
      Add ob = new Add();
      -> int c = ob.addition(a,b);
      System.out.println("Add: "+c);
   }
}

Questo capitolo spiega come gestire la classe di eccezioni utilizzando JDB. In genere, ogni volta che un programma solleva un'eccezione senza un'istruzione catch, la VM stampa la riga dell'eccezione, la causa dell'eccezione ed esce. Se l'eccezione è stata sollevata con un'istruzione catch, l'eccezione viene gestita dall'istruzione catch. Qui, la VM stampa l'output con la causa dell'eccezione.

Quando la classe che genera l'eccezione è in esecuzione in JDB, genera anche il file uncaughteccezione. Tale eccezione può essere gestita utilizzando ilcatch comando.

Esempio

Facciamo un esempio della classe JdbException:

public class JdbException
{
   public static void main(String ar[]) throws Exception
   {
      int a=8, b=0;
      System.out.println("Welcome");
      System.out.println("Ex: "+(a/b));
   }
}

Salva il file sopra con il nome JdbException.java. Compila questo file utilizzando il seguente comando:

\>javac JdbException.java

Seguire i passaggi indicati di seguito per gestire l'eccezione.

Passaggio 1: esegui la classe

Il seguente comando esegue la classe denominata JdbException come segue:

\>jdb JdbException
>run

Questo JdbException class contiene un'eccezione, quindi puoi vedere il seguente output:

Passaggio 2: cattura l'eccezione

Il comando seguente rileva l'eccezione:

mian[1] catch java.lang.ArithmeticException

Ti darà il seguente output:

Set all java.lang.ArithmeticException

Passaggio 3: continuare l'esecuzione

Il seguente comando continua l'esecuzione. Ora il catch gestisce l'eccezione aritmetica come segue:

Questo capitolo spiega come utilizzare JDB in Eclipse. Prima di procedere ulteriormente, è necessario installare Eclipse Indigo. Segui i passaggi indicati di seguito per installare Eclipse Indigo sul tuo sistema.

Passaggio 1: scarica e installa Eclipse

Puoi scaricare Eclipse dal seguente collegamento: http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/indigosr2

Passaggio 2: crea un nuovo progetto e una nuova classe

  • Crea un nuovo progetto Java seguendo le opzioni File-> New -> Java project.
  • Chiamalo come “sampledebug”.
  • Crea una nuova classe facendo clic con il pulsante destro del mouse su samplebebug progetto.
  • Selezionare options ->new -> class
  • Chiamalo come “Add.java”

Add.java

public class Add
{
   public int addition( int x, int y)
   {
      int z = x+y;
      return z;
   }
   public static void main( String ar[ ] )
   {
      int a = 5, b = 6;
      Add ob = new Add();
      int c = ob.addition(a,b);
      System.out.println("Add: "+c);
   }
}

Passaggio 3: aprire la prospettiva di debug

Seguire le istruzioni fornite di seguito per aprire la prospettiva di debug.

Nell'IDE di Eclipse, vai a Window -> Open perspective -> Debug. Ora ottieni la prospettiva di debug per il programma Add.java. Vedrai la seguente finestra.

Sezioni nella prospettiva di debug

Le sezioni nella prospettiva Debug sono le seguenti:

Sezione di codifica

Il codice Java viene visualizzato in questa sezione. È il codice di cui vuoi eseguire il debug, ovveroAdd.java. Qui possiamo aggiungere un punto di interruzione su una riga facendo doppio clic davanti alla riga. Troverai la bolla blu con un simbolo di freccia per indicare il punto di interruzione di quella linea. Vedi lo screenshot seguente; puoi trovare l'area selezionata con un cerchio rosso indicato come "1".

  1. Fare doppio clic qui. È possibile impostare il punto di interruzione per questa riga.

Sezione Breakpoint

Questa sezione definisce l'elenco dei punti di interruzione impostati sul codice del programma. Qui possiamo aggiungere, eliminare, trovare e gestire i punti di interruzione. Lo screenshot seguente mostra la sezione breakpoint.

Osserva le seguenti opzioni nello screenshot fornito:

  1. Utilizzando la casella di controllo a sinistra, possiamo selezionare o deselezionare un punto di interruzione. Qui, usiamo un punto di interruzione, cioè il metodo Add class-main ().

  2. L'icona a croce singola "X" viene utilizzata per eliminare il punto di interruzione selezionato.

  3. L'icona a doppia croce "XX" viene utilizzata per eliminare tutti i punti di interruzione nel codice.

  4. Il puntatore a freccia viene utilizzato per puntare al codice in cui viene applicato il punto di interruzione selezionato.

Le restanti funzionalità nella sezione breakpoint sono le seguenti:

  • Hitcount: Mostra quante volte il controllo raggiunge questo punto di interruzione. Viene utilizzato per la logica ricorsiva.

  • Suspend thread : Possiamo sospendere il thread corrente selezionandolo.

  • Suspend VM : Possiamo sospendere la VM selezionandola.

Sezione debug

Questa sezione viene utilizzata per il processo di debug. Contiene opzioni utilizzate nel debug.

Start debugging : Seguire le istruzioni fornite di seguito per avviare il debug.

Fare clic con il pulsante destro del mouse su code -> clic Debug as -> clic 1 Java application.

Il processo di debug inizia come mostrato nello screenshot seguente. Contiene alcune opzioni selezionate, evidenziate utilizzando cifre numeriche.

  1. Applichiamo un punto di interruzione al metodo main () della classe Add. Quando iniziamo il debug, ilcontroller si blocca sulla prima riga del metodo main ().

  2. È abituato Resumeil processo di debug e salta il punto di interruzione corrente. Funziona in modo simile alcont comando nella riga di comando JDB.

  3. Viene utilizzato per interrompere il processo di debug.

  4. Funziona in modo simile al step inprocesso nella riga di comando JDB. Viene utilizzato per spostare il controllo sulla riga successiva, ovvero il punto "1" si sposta sulla riga successiva.

  5. Funziona in modo simile al step over processo nella riga di comando JDB.

  6. Viene utilizzato per vedere su quale riga viene applicato il punto di interruzione.

Segui i passaggi e le sezioni indicati per eseguire il debug del codice in eclipse IDE. Per impostazione predefinita, ogni IDE contiene questo processo di debug.