The Java Platform Debugger Architecture is a collection of APIs to debug Java code.
Java Debugger Interface (JDI) - defines a high-level Java language interface that developers can easily use to write remote debugger application tools.Java Virtual Machine Tools Interface (JVMTI), a native interface that helps to inspect the state and to control the execution of applications running in the Java Virtual Machine (JVM).Java Virtual Machine Debug Interface (JVMDI)- JVMDI was deprecated in J2SE 5.0 in favor of JVM TI, and was removed in Java SE 6.Java Debug Wire Protocol (JDWP) - defines communication between debuggee (a Java application) and debugger processes.