JDB - Présentation

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. L'objectif 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.