# Package org.eclipse.jdt.debug.core

Provides an implementation of a debug model based on JPDA (Java Platform Debug Architecture).

## Package Specification

This package provides a set of classes and interfaces that implement a debug model based on JPDA/JDI (Java Debug Interface). It provides a set of interfaces that extend the base set of debug element interfaces to provide access to Java specific attributes and behavior. This model defines and provides utilities for creating line breakpoints, method entry breakpoints, exception breakpoints, and field watchpoints.

Interface Summary
IEvaluationRunnable: A runnable that represents one logical evaluation to be run in a target thread.
IJavaArray: A value referencing an array on a target VM.
IJavaArrayType: The type of an array on a Java debug target.
IJavaBreakpoint: A breakpoint specific to the Java debug model.
IJavaBreakpointListener: Provides event and error notification for Java breakpoints.
IJavaClassObject: An object referencing an instance of `java.lang.Class` on a target VM.
IJavaClassPrepareBreakpoint: A breakpoint that suspends execution when a class is prepared in a target VM.
IJavaClassType: The class of an object on a Java debug target.
IJavaDebugTarget: A Java virtual machine.
IJavaExceptionBreakpoint: A breakpoint that suspends execution when a corresponding exception is thrown in a target VM.
IJavaFieldVariable: A variable that contains the value of an instance or class variable.
IJavaHotCodeReplaceListener: Notification of hot code replace failure and success.
IJavaInterfaceType: An interface an object implements on a Java debug target.
IJavaLineBreakpoint: A breakpoint that suspends execution when a particular line of code is reached.
IJavaMethodBreakpoint: A method breakpoint suspends execution when a method is entered or exited.
IJavaMethodEntryBreakpoint: A method entry breakpoint suspends execution on the first executable line of a method when entered.
IJavaModifiers: Modifiers common to Java debug elements that have associated Java member declarations.
IJavaObject: A value referencing an object on a target VM.
IJavaPatternBreakpoint: Deprecated. use `IJavaStratumLineBreakpoint` instead
IJavaPrimitiveValue: A primitive value on a Java debug target.
IJavaReferenceType: Represents the type of an object in a virtual machine - including classes, interfaces and array types.
IJavaStackFrame: A stack frame in a thread on a Java virtual machine.
IJavaStratumLineBreakpoint: A line breakpoint identified by its source file name and/or path, and stratum that it is relative to.
IJavaTargetPatternBreakpoint: A line breakpoint installed in types associated with a specific source file (based on source file name debug attribute) and whose fully qualified name matches a specified pattern per target.
IJavaThread: A thread in a Java virtual machine.
IJavaThreadGroup: Represents a thread group in the target VM.
IJavaType: The type of a value on a Java debug target - a primitive data type, class, interface, or array.
IJavaValue: An object, primitive data type, or array, on a Java virtual machine.
IJavaVariable: A local variable, field slot, or receiver (this) in a Java virtual machine.
IJavaWatchpoint: A breakpoint on a field.

Class Summary
JDIDebugModel: Provides utility methods for creating debug targets and breakpoints specific to the JDI debug model.

Enum Summary
IJavaExceptionBreakpoint.SuspendOnRecurrenceStrategy: Constants for telling the debugger for each exception breakpoint how to handle multiple occurrences of the same exception instance, which can happen via re-throwing or multiple finally clauses in the call stack.