JDB - Einführung

Das Debuggen ist ein technisches Verfahren, um Fehler oder Defekte in einem Programm zu finden und zu entfernen und erwartete Ergebnisse zu erzielen. Das Debuggen umfasst das Testen und Überwachen. Es ist sehr komplex, wenn die Untereinheiten eines Programms eng miteinander verbunden sind. Wir können ein Programm mit den Debugger-Tools debuggen, die den vorgeschriebenen APIs folgen. Mit einem Debugger können Sie jeden Aspekt eines Codes durchgehen, alle Elemente überprüfen und gegebenenfalls Fehler entfernen.

Debugging-Techniken

Es gibt verschiedene Arten von Techniken zum Debuggen eines Java-Programms. Die alte Methode zum Debuggen besteht darin, am Ende jedes Segments print-Anweisungen zu verwenden, die die trace-Anweisungen auf der Konsole drucken. Schauen Sie sich den folgenden Code an.

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

Hier haben wir ein Programm, das zwei Zahlen hinzufügt und die Ausgabe druckt. Beachten Sie, dass wir bei jedem Schritt eine print-Anweisung eingeführt haben, die den Status des Programms auf der Konsole druckt. Dies ist der traditionelle Ansatz zum Debuggen eines Programms.

Darüber hinaus verfügen wir über erweiterte Konzepte, mit denen ein Programm debuggt werden kann, z.

  • stepping
  • Haltepunkte und
  • Ausnahmen oder Überwachungspunkte.

Arten des Debuggens

Wir können ein Programm mit verschiedenen Methoden debuggen:

  • Verwenden von Java-Bytecode (kompilierte Version von Java-Code)
  • Verwenden von Kommentaren in den Programmen
  • Klasse an ein laufendes Programm anhängen
  • Remote-Debugging
  • Debugging auf Anfrage
  • Optimiertes Code-Debugging

Java-Debugger

Hier sind einige Beispiele für Java-Debugger, die auf dem Markt verfügbar sind:

  • IDEs wie Eclipse, Netbeans usw. enthalten ihre eigenen Debugger (Visual Cafe, Borland, JBuilder).
  • Standalone-Debugger-GUIs (wie Jikes, Java-Plattform-Debugger und JProbe)
  • Befehlszeilen-Debugger (Suns JDB)
  • Notepad- oder VI-gesteuert (Stack-Trace)

Dieses Tutorial behandelt die Verwendung des Befehlszeilen-Debuggers. jdb.

JDB

Der Java-Debugger (JDB) ist ein Tool für Java-Klassen zum Debuggen eines Programms in der Befehlszeile. Es implementiert die Java Platform Debugger-Architektur. Es hilft beim Erkennen und Beheben von Fehlern in einem Java-Programm mithilfe der Java Debug Interface (JDI).

JDB in JDK

Die folgende Architektur definiert die Rolle von JDB in JDK. Es enthält hauptsächlich drei Einheiten:

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

JVM TI

Es ist eine native Programmierschnittstelle, die von VM implementiert wird. Es bietet Möglichkeiten zum Überprüfen und Debuggen des Status der Anwendung, die auf der VM ausgeführt wird. Es ermöglicht einen Implementierer (VM Implementer), der einfach in die Debugging-Architektur integriert werden kann. Es wird auch ein Drittanbieter-Kanal namens aufgerufenJDWP Für die Kommunikation.

JDWP

Es definiert das Format der Informationen und die Anforderungen, die zwischen dem Debuggee-Prozess und dem Debugger-Frontend übertragen werden. Der Hauptzweck eines JDWP besteht darin, dem Debugger und dem Debugger die Kommunikation zu ermöglichen, wenn sie unter separaten VMs oder auf separaten Plattformen ausgeführt werden.

JDI

Es ist eine Java-Schnittstelle auf hoher Ebene, die als Front-End implementiert ist. Es definiert die Variableninformationen auf Benutzercodeebene. Es wird empfohlen, für die gesamte Debugger-Entwicklung eine JDI-Schicht zu verwenden. Es verwendet JDWP für die Kommunikation mit der Debuggee-JVM.