Java Platform Debugger Architecture
# Java Platform Debugger Architecture

The Java Platform Debugger Architecture (JPDA) 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.

## Java Debugger Interface (JDI)

JDI is the highest-layer of the Java Platform Debugger Architecture. It allows to access the JVM and the internal variables of the debugged program. It also allows to set breakpoints, stepping, and handle threads.

