JDB - Guide rapide

Le débogage est une procédure technique pour trouver et supprimer des bogues ou des défauts dans un programme et obtenir les résultats attendus. Le débogage comprend les tests et la surveillance. C'est très complexe lorsque les sous-unités d'un programme sont étroitement couplées. Nous pouvons déboguer un programme à l'aide des outils de débogage qui suivent les API prescrites. Un débogueur vous permet de parcourir tous les aspects d'un code, d'inspecter tous les éléments et de supprimer les erreurs, le cas échéant.

Techniques de débogage

Il existe différents types de techniques pour déboguer un programme Java. L'ancienne méthode de débogage consiste à utiliser des instructions d'impression à la fin de chaque segment qui afficheront les instructions de trace sur la console. Jetez un œil au code suivant.

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);
   }
}

Ici, nous avons un programme qui ajoute deux nombres et imprime la sortie. Notez qu'à chaque étape, nous avons introduit une instruction print qui imprime l'état du programme sur la console. C'est l'approche traditionnelle pour déboguer un programme.

De plus, nous avons des concepts avancés qui peuvent être utilisés pour déboguer un programme tels que:

  • stepping
  • points d'arrêt, et
  • exceptions ou points de vigilance.

Types de débogage

Nous pouvons déboguer un programme en utilisant différentes méthodes:

  • Utilisation du bytecode Java (version compilée du code Java)
  • Utilisation des commentaires dans les programmes
  • Attacher une classe à un programme en cours d'exécution
  • Débogage à distance
  • Débogage à la demande
  • Débogage de code optimisé

Débogueurs Java

Voici quelques exemples de débogueurs Java disponibles sur le marché:

  • Les IDE tels qu'Eclipse, Netbeans, etc. contiennent leurs propres débogueurs (Visual cafe, Borland, JBuilder)
  • GUI de débogage autonomes (telles que Jikes, débogueur de plate-forme Java et JProbe)
  • Débogueur de ligne de commande (JDB de Sun)
  • Bloc-notes ou VI (trace de pile)

Ce tutoriel explique comment utiliser le débogueur de ligne de commande, jdb.

JDB

Le débogueur Java (JDB) est un outil permettant aux classes Java de déboguer un programme en ligne de commande. Il implémente l'architecture du débogueur de plate-forme Java. Il aide à détecter et à corriger les bogues dans un programme Java à l'aide de Java Debug Interface (JDI).

JDB dans JDK

L'architecture suivante définit le rôle de JDB dans JDK. Il contient principalement trois unités:

  • Interface Java Virtual Machine Tool (JVM TI)
  • Pool de câblage de débogage Java (JDWP)
  • Interface de débogage Java (JDI)

JVM TI

Il s'agit d'une interface de programmation native implémentée par VM. Il fournit des moyens d'inspecter et de déboguer l'état de l'application en cours d'exécution sur la machine virtuelle. Il permet un implémenteur (VM Implementer) qui peut être facilement inclus dans l'architecture de débogage. Il utilise également un canal tiers appeléJDWP pour la communication.

JDWP

Il définit le format des informations et les demandes qui passent entre le processus de débogage et le serveur frontal du débogueur. Le but principal d'avoir un JDWP est de permettre au débogueur et au débogueur de communiquer lorsqu'ils s'exécutent sous des VM distinctes ou sur des plates-formes distinctes.

JDI

Il s'agit d'une interface Java de haut niveau implémentée en tant que frontal. Il définit les informations variables au niveau du code utilisateur. Il est recommandé d'utiliser une couche JDI pour tout développement de débogueur. Il utilise JDWP pour la communication avec la JVM de débogage.

Ce chapitre explique comment installer JDB sur les systèmes Windows et Linux. JDB fait partie de JDK. Par conséquent, l'installation de JDK est suffisante pour utiliser JDB dans l'invite de commande.

Configuration requise

Voici la configuration système requise pour installer JDB:

JDK Java SE 2 JDK 1.5 ou supérieur
Mémoire 1 Go de RAM (recommandé)
Espace disque Aucune exigence minimale
Version du système d'exploitation Windows XP ou supérieur, Linux

Suivez les étapes simples ci-dessous pour installer JDB sur votre système.

Étape 1: vérification de l'installation de Java

Tout d'abord, vous devez disposer du kit de développement logiciel Java (SDK) installé sur votre système. Pour vérifier cela, exécutez l'une des deux commandes en fonction de la plate-forme sur laquelle vous travaillez.

Si l'installation de Java a été effectuée correctement, il affiche la version actuelle et les spécifications de l'installation de Java. Un exemple de sortie est donné dans le tableau suivant.

Plate-forme Commander Exemple de sortie
les fenêtres

Ouvrez la console de commande et tapez:

\>java –version

Version Java "1.7.0_60"

Environnement d'exécution Java (TM) SE (build 1.7.0_60-b19)

VM serveur 64 bits Java Hotspot (TM) (build 24.60-b09, mode mixte)

Linux

Ouvrez le terminal de commande et tapez:

$java –version

version java "1.7.0_25"

Ouvrir l'environnement d'exécution JDK (rhel-2.3.10.4.el6_4-x86_64)

Ouvrez la machine virtuelle du serveur JDK 64 bits (build 23.7-b01, mode mixte)

Nous supposons que les lecteurs de ce didacticiel ont installé la version 1.7.0_60 du SDK Java sur leur système. Si vous ne disposez pas du SDK Java, téléchargez sa version actuelle à partir du lienhttp://www.oracle.com/technetwork/java/javase/downloads/index.html et installez-le.

Étape 2: Configuration de l'environnement Java

Définissez la variable d'environnement JAVA_HOME pour qu'elle pointe vers l'emplacement du répertoire de base où Java est installé sur votre machine. Par exemple,

Plate-forme La description
les fenêtres définissez JAVA_HOME sur C: \ ProgramFiles \ java \ jdk1.7.0_60
Linux export JAVA_HOME = / usr / local / java

Ajoutez le chemin complet de l'emplacement du compilateur Java au chemin système.

Plate-forme La description
les fenêtres Ajoutez la chaîne "C: \ Program Files \ Java \ jdk1.7.0_60 \ bin" à la fin de la variable système PATH.
Linux export PATH = $ PATH: $ JAVA_HOME / bin /

Exécutez la commande java -version à partir de l'invite de commande comme expliqué ci-dessus.

Étape 3: Vérification de l'installation de JDB

Vérifiez la version JDB comme suit:

Plate-forme Commander Exemple de sortie
les fenêtres

Ouvrez la console de commande et tapez:

\>jdb –version

Il s'agit de JDB version 1.6 (Java SE version 1.7.0_60)
Linux

Ouvrez le terminal de commande et tapez:

$jdb –version

Il s'agit de JDB version 1.6 (Java SE version 1.7.0_60)

Ce chapitre explique la syntaxe de la commande JDB. La syntaxe contient quatre sections répertoriées comme suit:

  • JDB
  • option
  • class
  • arguments

Syntaxe

La syntaxe de JDB est la suivante.

jdb [ options ] [ class ] [ arguments ]

JDB

Il appelle jdb.exe à partir du kit de développement Java.

Options

Celles-ci incluent les options de ligne de commande utilisées pour déboguer un programme Java de manière efficace. Le lanceur JDB accepte toutes les options (telles que -D, -classpath et -X) et certaines options avancées supplémentaires telles que (-attach, -listen, -launch, etc.).

Classe

C'est le nom de la classe sur laquelle vous souhaitez effectuer des opérations de débogage.

Arguments

Ce sont les valeurs d'entrée données à un programme lors de l'exécution. Par exemple, arg [0], arg [1] à la méthode main ().

Dans les quatre segments ci-dessus, les options sont les plus importantes.

Ce chapitre décrit les options importantes disponibles dans JDB qui sont soumises comme arguments avec la commande jdb.

Options

Le tableau suivant contient une liste d'options acceptées par JDB:

Nom La description
-Aidez-moi Affiche le message d'aide et répertorie les options associées.
-sourcepath Utilise le chemin donné pour les fichiers source si le chemin n'est pas spécifié, alors il prend le chemin par défaut «.», C'est-à-dire le répertoire courant.
-attacher Attache le débogueur à la machine virtuelle en cours d'exécution en spécifiant l'adresse de la machine virtuelle en cours d'exécution.
-Ecoutez Attend que la machine virtuelle en cours d'exécution se connecte à l'aide du connecteur standard.
-écouter Attend que la machine virtuelle en cours d'exécution se connecte à l'aide de n'importe quelle adresse.
-lancement Lance l'application déboguée immédiatement au démarrage de la tâche.
-listeconnecteurs Répertorie les connecteurs disponibles dans cette machine virtuelle.
-relier Se connecte à la machine virtuelle cible à l'aide d'un connecteur nommé avec les valeurs d'argument répertoriées.
-dbgtrace Imprime des informations pour le débogage de jdb.
-tclient Exécute l'application dans Java Hotspot VM (client).
-serveur Exécute l'application dans Java Hotspot VM (serveur).
-Joption Transmet l'option à la machine virtuelle Java utilisée pour exécuter JDB.

Utilisation d'options avec des commandes

Les commandes suivantes montrent comment utiliser certaines des options ci-dessus:

-Aidez-moi

La commande suivante obtient -help lors de l'utilisation de JDB.

\>jdb -help

-attacher

La commande suivante attache le débogueur à une machine virtuelle spécifiée (numéro de port: 1099).

\> jdb -attach 1099

-Ecoutez

La commande suivante fait que le processus JDB s'exécute sur la VM actuelle en attente à l'aide du connecteur standard (VM en 8008).

\>jdb -listen 8088

-écouter

La commande suivante fait attendre le processus JDB en cours d'exécution sur la machine virtuelle actuelle à l'aide de n'importe quel connecteur (machine virtuelle dans le port en cours d'exécution).

\>jdb –listenany

-tclient

La commande suivante exécute l'application dans la VM Java Hotspot (™) (client).

\>jdb –tclient

-serveur

La commande suivante exécute l'application sur la VM Java Hotspot (™) (serveur).

\>jdb -tserver

Ce chapitre décrit comment démarrer une session JDB de différentes manières. Le lancement JDB est la technique fréquemment utilisée pour démarrer une session JDB.

Il existe deux manières différentes de démarrer une session JDB:

  • Démarrage de la session JDB en y ajoutant la classe (nom de la classe principale).
  • Ajout de JDB à l'exécution de JVM pour démarrer la session.

Démarrer une session en ajoutant une classe

La commande suivante démarre une session JDB:

Syntaxe

\>jdb <classname>

Exemple

Supposons que nous ayons une classe nommée TestClass. La commande suivante démarre une session JDB à partir de TestClass.

\>jdb TestClass

Si vous suivez cette commande, il démarre une nouvelle machine virtuelle Java avec les paramètres spécifiés. Ensuite, il charge la classe et l'arrête avant d'exécuter la première instruction de la classe.

Démarrer une session en ajoutant JDB à une machine virtuelle Java en cours d'exécution

Vous trouverez ci-dessous la syntaxe et l'exemple pour démarrer une session JDB en ajoutant le JDB à une JVM en cours d'exécution.

Syntaxe

La syntaxe suivante est pour la session JDB:

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

Exemple

Supposons que le nom de la classe principale soit TestClasset JVM permet au JDB de le connecter ultérieurement. Voici la commande pour ajouter JDB à JVM:

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

Vous pouvez maintenant attacher le JDB à la JVM avec la commande suivante:

\> jdb -attach jdbconn

Note: Ici le TestClass n'est pas ajouté à la commande JDB, car JDB est connecté à la machine virtuelle en cours d'exécution au lieu d'en lancer une nouvelle.

Ce chapitre vous présente les commandes de base de JDB. Après le lancement d'une session, ces commandes sont utilisées pour déboguer un programme.

Voici la liste des commandes utilisées pour le débogage.

Nom La description
aide ou? Le plus important JDBcommander; il affiche une liste des commandes reconnues avec une brève description.
courir Après le démarrage JDB et en définissant les points d'arrêt nécessaires, vous pouvez utiliser cette commande pour démarrer l'exécution et déboguer une application.
cont Continue l'exécution de l'application déboguée après un point d'arrêt, une exception ou une étape.
impression Affiche les objets Java et les valeurs primitives.
déverser Pour les valeurs primitives, cette commande est identique à print. Pour les objets, il imprime la valeur actuelle de chaque champ défini dans l'objet. Les champs statiques et d'instance sont inclus.
fils Répertorie les threads en cours d'exécution.
fil Sélectionne un thread comme thread actuel.
Vide la pile du thread actuel.

Exemple

Supposons que nous ayons un exemple de classe appelé Add pour les exemples suivants:

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);
   }
}

Compilez cette classe Add.java à l'aide de la commande suivante:

\>javac Add.java

Courir

Cette commande exécute le fichier de classe principal, qui est ajouté à JDB pour le débogage. Exécutez les commandes suivantes pour exécuter la classe Add.

\>jdb Add
initializing jdb …
>run

En exécutant ces commandes, vous obtenez la sortie suivante:

Ce chapitre explique le concept de points d'arrêt et comment définir des points d'arrêt dans un programme. Un point d'arrêt introduit un arrêt ou une pause explicite dans l'exécution d'un programme sur une ligne de code particulière lors du débogage. Il est utile d'acquérir des connaissances sur les variables du programme lors de son exécution.

Syntaxe

La commande suivante définit un point d'arrêt à un numéro de ligne particulier:

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

La commande suivante définit un point d'arrêt sur une méthode particulière ou sur une variable particulière:

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

Exemple

L'exemple suivant montre comment configurer un point d'arrêt dans une 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);
   }
}

Enregistrez le fichier ci-dessus sous Add.java. Compilez ce fichier à l'aide de la commande suivante:

\>javac Add.java

Débogage

Prenons un exemple pour le débogage. Ici, nous démarrons le processus de débogage en définissant un point d'arrêt sur main (). Vous trouverez ci-dessous les étapes à suivre dans le processus de débogage:

Étape 1: démarrer une session JDB

La commande suivante démarre une session JDB sur la classe Add pour le débogage:

\> jdb Add

Étape 2: définir un point d'arrêt

La commande suivante définit un point d'arrêt sur la méthode main () de la classe Add.

> stop in Add.main

Si le point d'arrêt est défini avec succès, vous obtenez la sortie suivante:

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

Étape 3: démarrer le débogage

La commande suivante démarre l'exécution de la classe Add:

> run Add

Si vous exécutez cette commande, vous obtenez la sortie suivante. Dans cette sortie, vous trouvez que l'exécution s'arrête à la position du point d'arrêt, c'est-à-dire à la fonction main ().

L'exécution s'arrête à la première ligne de la méthode principale, c'est-à-dire à "int a = 5, b = 6;" ou Ligne no: 11 dans le code. Vous pouvez observer ces informations dans la sortie.

Étape 4: Poursuivre l'exécution

La commande suivante poursuit l'exécution du programme:

cont

Il vous donne la partie d'exécution restante et la sortie comme suit:

> Add:11
The application exited
\>

Ce chapitre explique comment utiliser le concept de Pas à pas dans le débogage d'un programme. Le pas à pas est la fonction de débogage qui vous permet d'exécuter le code en parcourant ligne par ligne. Grâce à cela, vous pouvez examiner chaque ligne du code pour vous assurer qu'elles se comportent comme prévu.

Les commandes suivantes sont utilisées dans le processus pas à pas:

  • step: étapes vers la ligne d'exécution suivante
  • list: examine où vous vous trouvez dans le code
  • cont: continue l'exécution restante

Exemple

L'exemple suivant utilise la classe Add que nous avons utilisée dans le chapitre précédent:

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);
   }
}

Enregistrez le fichier ci-dessus sous Add.java. Compilez ce fichier à l'aide de la commande suivante:

\>javac Add.java

Supposons que le point d'arrêt soit défini sur la méthode main () de la classe Add. Les étapes suivantes montrent comment appliquer la procédure pas à pas dans la classe Add.

Étape 1: Exécuter le travail

La commande suivante démarre l'exécution de la classe nommée Add.

> run Add

Si vous exécutez cette commande, vous obtenez la sortie suivante. Dans cette sortie, vous pouvez constater que l'exécution s'arrête à la position du point d'arrêt, c'est-à-dire à la méthode main ().

L'exécution s'arrête à la première ligne de la méthode principale, c'est-à-dire à "int a = 5, b = 6;" ou Ligne no: 11 dans le code. Vous pouvez observer ces informations dans la sortie.

Étape 2: parcourir le code

La commande suivante fait passer l'exécution à la ligne suivante.

main[1] step

Maintenant, les étapes d'exécution à la ligne no: 12. Vous obtenez de voir la sortie suivante.

Étape 3: Listez le code

La commande suivante répertorie le code:

main[1] list

Vous obtenez la sortie suivante. La commande List est utilisée pour vous indiquer la ligne du code jusqu'à laquelle le contrôle de programme a atteint. Notez la flèche => dans la capture d'écran suivante qui montre la position actuelle du contrôle du programme.

Étape 4: Poursuivre l'exécution

La commande suivante continue d'exécuter le code:

main[1] cont

Cette commande continue d'exécuter les lignes restantes du code. La sortie est comme indiqué ci-dessous:

> Add:11
The application exited
\>

Généralement, il existe trois types de progression:

  • Entrer dans
  • Enjamber
  • Sors

Entrer dans

En utilisant cette commande, vous pouvez passer à la ligne suivante du code. Si la ligne suivante du code est un appel de fonction, alors il entre dans la fonction en pilotant la commande sur la ligne supérieure de la fonction.

Dans le code suivant, la flèche définit le contrôleur dans le code.

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);
   }
}

Si vous utilisez le step intocommande, le contrôleur passe à la ligne suivante, c'est-à-dire "int c = ob.addition (a, b);". Sur cette ligne, il y a un appel de fonctionaddition(int, int) par conséquent, le contrôleur se déplace vers la ligne supérieure de la fonction d'addition avec la flèche comme indiqué ci-dessous:

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);
   }
}

Enjamber

Step Over exécute également la ligne suivante. Mais si la ligne suivante est un appel de fonction, elle exécute cette fonction en arrière-plan et renvoie le résultat.

Prenons un exemple. Dans le code suivant, la flèche définit le contrôle dans le code.

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);
   }
}

Si vous utilisez le step overcommande, le contrôle passe à la ligne suivante, c'est-à-dire "int c = ob.addition (a, b);". Dans cette ligne, il y a un appel de fonctionaddition(int, int) par conséquent, l'exécution de la fonction se fait en arrière-plan et le résultat est renvoyé à la ligne actuelle avec la flèche comme indiqué ci-dessous:

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);
   }
}

Sors

Step Out exécute la ligne suivante. Si la ligne suivante est un appel de fonction, elle l'ignore et l'exécution de la fonction continue avec les lignes restantes du code.

Prenons un exemple. Dans le code suivant, la flèche définit le contrôleur dans le code.

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);
   }
}

Si vous utilisez le step outcommande, le contrôleur passe à la ligne suivante, c'est-à-dire "int c = ob.addition (a, b);". Dans cette ligne, il y a un appel de fonctionaddition(int, int) par conséquent, l'exécution de la fonction est ignorée et l'exécution restante continue avec la flèche comme indiqué ci-dessous:

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);
   }
}

Ce chapitre explique comment gérer la classe d'exception à l'aide de JDB. En général, chaque fois qu'un programme déclenche une exception sans instruction catch, la machine virtuelle imprime la ligne d'exception, la cause de l'exception et se ferme. Si l'exception a été déclenchée avec une instruction catch, l'exception est gérée par l'instruction catch. Ici, la VM imprime la sortie avec la cause de l'exception.

Lorsque la classe qui déclenche l'exception s'exécute sous JDB, elle lève également le uncaughtexception. Cette exception peut être gérée à l'aide ducatch commander.

Exemple

Prenons un exemple de la 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));
   }
}

Enregistrez le fichier ci-dessus sous le nom JdbException.java. Compilez ce fichier à l'aide de la commande suivante:

\>javac JdbException.java

Suivez les étapes ci-dessous pour gérer l'exception.

Étape 1: Exécutez le cours

La commande suivante exécute la classe nommée JdbException comme suit:

\>jdb JdbException
>run

Ce JdbException La classe contient une exception, vous obtenez donc la sortie suivante:

Étape 2: attraper l'exception

La commande suivante intercepte l'exception:

mian[1] catch java.lang.ArithmeticException

Il vous donnera la sortie suivante:

Set all java.lang.ArithmeticException

Étape 3: Poursuivre l'exécution

La commande suivante continue l'exécution. Maintenant, le catch gère l'exception arithmétique comme suit:

Ce chapitre explique comment utiliser JDB dans Eclipse. Avant de continuer, vous devez installer Eclipse Indigo. Suivez les étapes ci-dessous pour installer Eclipse Indigo sur votre système.

Étape 1: Téléchargez et installez Eclipse

Vous pouvez télécharger Eclipse à partir du lien suivant: http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/indigosr2

Étape 2: créer un nouveau projet et une nouvelle classe

  • Créez un nouveau projet Java en suivant les options File-> New -> Java project.
  • Nommez-le comme “sampledebug”.
  • Créez une nouvelle classe en faisant un clic droit sur le samplebebug projet.
  • Sélectionner options ->new -> class
  • Nommez-le comme “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);
   }
}

Étape 3: Ouvrez la perspective de débogage

Suivez les instructions ci-dessous pour ouvrir la perspective de débogage.

Sur l'IDE Eclipse, accédez à Window -> Open perspective -> Debug. Vous obtenez maintenant la perspective de débogage pour le programme Add.java. Vous obtenez la fenêtre suivante.

Sections dans la perspective de débogage

Les sections de la perspective Débogage sont les suivantes:

Section de codage

Le code Java est affiché dans cette section. C'est le code que vous souhaitez déboguer, c'est-à-direAdd.java. Ici, nous pouvons ajouter un point d'arrêt sur une ligne en double-cliquant devant la ligne. Vous trouvez la bulle bleue avec un symbole de flèche pour indiquer le point d'arrêt de cette ligne. Voir la capture d'écran suivante; vous pouvez trouver la zone sélectionnée avec un cercle rouge pointé comme «1».

  1. Double cliquez ici. Vous pouvez définir le point d'arrêt pour cette ligne.

Section de point d'arrêt

Cette section définit la liste des points d'arrêt définis sur le code du programme. Ici, nous pouvons ajouter, supprimer, rechercher et gérer les points d'arrêt. La capture d'écran suivante montre la section des points d'arrêt.

Observez les options suivantes dans la capture d'écran donnée:

  1. En utilisant la case à cocher à gauche, nous pouvons sélectionner ou désélectionner un point d'arrêt. Ici, nous utilisons un point d'arrêt, c'est-à-dire la méthode Add class-main ().

  2. L'icône de croix unique «X» est utilisée pour supprimer le point d'arrêt sélectionné.

  3. L'icône de double croix «XX» est utilisée pour supprimer tous les points d'arrêt de votre code.

  4. Le pointeur de flèche est utilisé pour pointer vers le code où le point d'arrêt sélectionné est appliqué.

Les fonctionnalités restantes de la section point d'arrêt sont les suivantes:

  • Hitcount: Il montre combien de fois le contrôle atteint ce point d'arrêt. Il est utilisé pour la logique récursive.

  • Suspend thread : Nous pouvons suspendre le fil en cours en le sélectionnant.

  • Suspend VM : Nous pouvons suspendre la VM en la sélectionnant.

Section de débogage

Cette section est utilisée pour le processus de débogage. Il contient des options utilisées pour le débogage.

Start debugging : Suivez les instructions ci-dessous pour démarrer le débogage.

Faites un clic droit sur le code -> Cliquez sur Debug as -> Cliquez sur 1 Java application.

Le processus de débogage démarre comme indiqué dans la capture d'écran suivante. Il contient certaines options sélectionnées, mises en évidence à l'aide de chiffres numériques.

  1. Nous appliquons un point d'arrêt sur la méthode Add class main (). Lorsque nous commençons le débogage, lecontroller se bloque à la première ligne de la méthode main ().

  2. Il est utilisé pour Resumele processus de débogage et ignorez le point d'arrêt actuel. Cela fonctionne comme lecont commande dans la ligne de commande JDB.

  3. Il est utilisé pour arrêter le processus de débogage.

  4. Cela fonctionne comme le step inprocessus dans la ligne de commande JDB. Il est utilisé pour déplacer le contrôle vers la ligne suivante, c'est-à-dire que le point «1» passe à la ligne suivante.

  5. Cela fonctionne comme le step over processus dans la ligne de commande JDB.

  6. Il est utilisé pour voir sur quelle ligne le point d'arrêt est appliqué.

Suivez les étapes et les sections données pour déboguer votre code dans l'EDI eclipse. Par défaut, chaque IDE contient ce processus de débogage.