JDB Introduction - The Java Debugger (JDB)

What is JDB Introduction?

Debugging is a technical process to discovery and eliminates bugs or flaws in a program and gets anticipated results. Debugging comprises testing and monitoring. It is very difficult when the subunits of a program are firmly coupled. We can correct a program using the debugger tools that follow the prescribed APIs. A debugger allows you to step through every aspect of a code, inspect all the elements, and remove errors, if any.

Debugging Techniques

There are dissimilar kinds of techniques to debug a Java program. The old method of debugging is by means of print statements at the end of every section which will print the trace statements on the console. Take a look at the resulting code.

Now, we need a program that adds two numbers and prints the output. Notice that at each step, we have presented a print statement that prints the state of the program on the console. This is the old-style approach to debug a program.

In addition, we have progressive ideas that can be used to debug a program such as:

  • stepping
  • breakpoints, and
  • exceptions or watchpoints.

Types of Debugging

We can debug a program using various methods:

  • Using Java bytecode (compiled version of Java code)
  • Using comments inside the programs
  • Attaching class to a running program
  • Remote debugging
  • Debugging on demand
  • Optimized code debugging

Java Debuggers

At this point there are certain instances of Java debuggers that are obtainable in the market:

  • IDEs such as Eclipse, Netbeans, etc. contain their own debuggers (Visual cafe, Borland, JBuilder)
  • Standalone debugger GUIs (such as Jikes, Java platform debugger, and JProbe)
  • Command-line debugger (Sun’s JDB)
  • Notepad or VI driven (stack trace)

This tutorial covers how to use the command-line debugger, jdb.

JDB

The Java debugger (JDB) is a tool for Java classes to debug a program in command line. It implements the Java Platform Debugger Architecture. It helps in detecting and fixing bugs in a Java program using Java Debug Interface (JDI).

JDB in JDK

The following architecture defines the role of JDB in JDK. It contains mainly three units:

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

jdb_architecture

JVM TI

It is a natural programming interface applied by VM. It offers ways to review and correct the state of the application running on the VM. It lets an implementer (VM Implementer) that can be surrounded simply into the debugging architecture. It also uses a third-party channel called JDWP for communication.

JDWP

It describes the format of information and the needs that pass in between the debugged process and the debugger front end. The main purpose of having a JDWP is to let the debugged and the debugger to connect when they run under separate VMs or in separate platforms.

JDI

It is a high-level Java interface applied as front end. It describes the flexible information at user code level. It is optional to use a JDI layer for all debugger growth. It uses JDWP for communication with the debugged JVM.

All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd DMCA.com Protection Status

The Java Debugger (JDB) Topics