diff options
26 files changed, 87 insertions, 195 deletions
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java index 18ea01f41..2e9671cbe 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java @@ -18,6 +18,7 @@ import org.eclipse.core.runtime.PlatformObject; import org.eclipse.core.runtime.Status;
import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.IBreakpointManager;
import org.eclipse.debug.internal.core.DebugCoreMessages;
/**
@@ -89,6 +90,12 @@ public abstract class Breakpoint extends PlatformObject implements IBreakpoint { public void setRegistered(boolean registered) throws CoreException {
if (isRegistered() != registered) {
setAttribute(REGISTERED, registered);
+ IBreakpointManager mgr = DebugPlugin.getDefault().getBreakpointManager();
+ if (registered) {
+ mgr.addBreakpoint(this);
+ } else {
+ mgr.removeBreakpoint(this, false);
+ }
}
}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java index 13c5267fb..47f875722 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java @@ -18,7 +18,7 @@ import org.eclipse.debug.core.DebugPlugin; * <p>
* A breakpoint is defined in two parts:
* <ol>
- * <li>By an extension of kind <code>"org.eclipse.debug.core.breakpoints"</li>
+ * <li>By an extension of kind <code>"org.eclipse.debug.core.breakpoints"</code></li>
* <li>By a marker definition that corresponds to the above breakpoint extension</li>
* </ol>
* <p>
@@ -70,7 +70,7 @@ public interface IBreakpoint extends IAdaptable { public static final String BREAKPOINT_MARKER = DebugPlugin.PLUGIN_ID + ".breakpointMarker"; //$NON-NLS-1$
/**
- * Line breakpoint marker type.
+ * Line breakpoint marker type
* (value <code>"org.eclipse.debug.core.lineBreakpoint"</code>).
*/
public static final String LINE_BREAKPOINT_MARKER = DebugPlugin.PLUGIN_ID + ".lineBreakpointMarker"; //$NON-NLS-1$
@@ -85,17 +85,16 @@ public interface IBreakpoint extends IAdaptable { public static final String ENABLED= "org.eclipse.debug.core.enabled"; //$NON-NLS-1$
/**
- * Breakpoint marker attribute (value <code>"org.eclipse.debug.core.id"</code>).
+ * Debug model identifier breakpoint marker attribute (value <code>"org.eclipse.debug.core.id"</code>).
* The attribute is a <code>String</code> corresponding to the
- * identifier of the debug model a breakpoint is
- * associated with.
+ * identifier of the debug model a breakpoint is associated with.
*/
public static final String ID= "org.eclipse.debug.core.id"; //$NON-NLS-1$
/**
* Registered breakpoint marker attribute (value <code>"org.eclipse.debug.core.registered"</code>).
* The attribute is a <code>boolean</code> corresponding to
- * whether a breakpoint has been added to the breakpoint manager.
+ * whether a breakpoint has been registered with the breakpoint manager.
*
* @see org.eclipse.core.resources.IMarker#getAttribute(String, boolean)
*/
@@ -112,17 +111,11 @@ public interface IBreakpoint extends IAdaptable { public static final String PERSISTED= "org.eclipse.debug.core.persisted"; //$NON-NLS-1$
/**
- * Attribute name for the <code>"markerType"</code> attribute of
- * a breakpoint extension.
- */
- public static final String MARKER_TYPE= "markerType"; //$NON-NLS-1$
-
- /**
* Deletes this breakpoint's underlying marker, and removes
* this breakpoint from the breakpoint manager.
*
- * @exception CoreException if deleting the underlying marker throws
- * a <code>CoreException<code>.
+ * @exception CoreException if unable to delete this breakpoint's
+ * underlying marker
*/
public void delete() throws CoreException;
@@ -154,8 +147,8 @@ public interface IBreakpoint extends IAdaptable { * Returns whether this breakpoint is enabled
*
* @return whether this breakpoint is enabled
- * @exception CoreException if a <code>CoreException</code> is
- * thrown when retrieving the enabled attribute from the underlying marker
+ * @exception CoreException if unable to access the associated
+ * attribute from this breakpoint's underlying marker
*/
public boolean isEnabled() throws CoreException;
/**
@@ -164,8 +157,8 @@ public interface IBreakpoint extends IAdaptable { * enabled parameter.
*
* @param enabled whether this breakpoint should be enabled
- * @exception CoreException if a <code>CoreException</code> is thrown
- * when setting the attribute on the underlying marker.
+ * @exception CoreException if unable to set the associated attribute on
+ * this breakpoint's underlying marker.
*/
public void setEnabled(boolean enabled) throws CoreException;
@@ -175,22 +168,19 @@ public interface IBreakpoint extends IAdaptable { *
* @return whether this breakpoint is currently registered with
* the breakpoint manager
- * @exception CoreException if a <code>CoreException</code> is thrown
- * when accessing the attribute on the underlying marker
+ * @exception CoreException if unable to access the associated
+ * attribute on this breakpoint's underlying marker
*/
public boolean isRegistered() throws CoreException;
/**
* Sets whether this breakpoint is currently registered with the
- * breakpoint manager. This method is only used by the breakpoint
- * manager, such that when breakpoints are restored on workspace
- * startup, the breakpoint manager knows which breakpoints should
- * be added to the breakpoint manager.
+ * breakpoint manager.
*
* @param registered whether this breakpoint is registered with the
* breakpoint manager
- * @exception CoreException if a <code>CoreException</code> is thrown
- * when setting the attribute on the underlying marker.
+ * @exception CoreException if unable to set the associated attribute
+ * on this breakpoint's underlying marker.
*/
public void setRegistered(boolean registered) throws CoreException;
@@ -202,8 +192,8 @@ public interface IBreakpoint extends IAdaptable { * specific type), breakpoints define this functionality.
*
* @return whether this breakpoint is to be persisted
- * @exception CoreException if a <code>CoreException</code> is thrown
- * when accessing the attribute on the underlying marker
+ * @exception CoreException if unable to access the associated attribute
+ * on this breakpoint's underlying marker
*/
public boolean isPersisted() throws CoreException;
@@ -216,8 +206,8 @@ public interface IBreakpoint extends IAdaptable { * breakpoint's marker definition is defined as not persisted.
*
* @param persist whether this breakpoint is to be persisted
- * @exception CoreException if a <code>CoreException</code> is thrown
- * when setting the attribute on the underlying marker.
+ * @exception CoreException if unable to set the associated attribute on
+ * this breakpoint's underlying marker.
*/
public void setPersisted(boolean registered) throws CoreException;
}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java index 7ca045d1e..8f9ab7558 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java @@ -31,12 +31,6 @@ import org.eclipse.debug.core.ILaunch; * <p>
* Clients may implement this interface.
* </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
*/
public interface IDebugElement extends IAdaptable {
@@ -57,7 +51,10 @@ public interface IDebugElement extends IAdaptable { * Returns the launch this target is contained in,
* or <code>null</code> if not yet registered with
* a launch.
- *
+ * <p>
+ * [Issue: Specification will be changed to not allow null
+ * to be returned.]
+ * </p>
* @return launch or <code>null</code>
*/
public ILaunch getLaunch();
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java index 925c8ee79..b177a835c 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java @@ -11,8 +11,8 @@ import org.eclipse.debug.core.IBreakpointListener; /**
* A debug target is a debuggable execution context. For example, a debug target
* may represent a debuggable process or a virtual machine. A debug target is the root
- * of the debug element hierarchy. A debug target is of element type <code>DEBUG_TARGET</code>,
- * and contains threads. Minimally, a debug target supports the following capabilities:
+ * of the debug element hierarchy. A debug targetcontains threads. Minimally, a debug
+ * target supports the following:
* <ul>
* <li>terminate
* <li>suspend/resume
@@ -26,12 +26,6 @@ import org.eclipse.debug.core.IBreakpointListener; * <p>
* Clients may implement this interface.
* </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @see ITerminate
* @see ISuspendResume
* @see IBreakpointListener
@@ -44,6 +38,9 @@ public interface IDebugTarget extends IDebugElement, ITerminate, ISuspendResume, * Returns the system process associated with this debug target
* or <code>null</code> if no system process is associated with
* this debug target.
+ *
+ * @return the system process associated with this debug target
+ * or <code>null</code> if none
*/
public IProcess getProcess();
/**
@@ -61,9 +58,9 @@ public interface IDebugTarget extends IDebugElement, ITerminate, ISuspendResume, public IThread[] getThreads() throws DebugException;
/**
- * Returns whether this debug target contains any threads.
+ * Returns whether this debug target currently contains any threads.
*
- * @return whether this debug target contains any threads
+ * @return whether this debug target currently contains any threads
* @exception DebugException if this method fails. Reasons include:
* <ul><li>Failure communicating with the debug target. The DebugException's
* status code contains the underlying exception responsible for
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java index 8ed1336c4..7e06b6c4a 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java @@ -13,12 +13,6 @@ import org.eclipse.debug.core.DebugException; * <p>
* Clients may implement this interface.
* </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @see IDebugTarget
*/
public interface IDisconnect {
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java index 4e7f1173c..6713ef5be 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java @@ -21,12 +21,6 @@ package org.eclipse.debug.core.model; * <p>
* Clients are intended to implement this interface.
* </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @since 2.0
*/
public interface IExpression extends IDebugElement {
@@ -40,7 +34,7 @@ public interface IExpression extends IDebugElement { /**
* Returns the current value of this expression or
- * <code>code</code> null if this expression does not
+ * <code>null</code> if this expression does not
* currently have a value.
*
* @return value or <code>null</code>
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java index 7ea2384da..7c5eb64c6 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java @@ -12,24 +12,16 @@ import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
/**
- * Note: This interface is yet experimental.
- * <p>
* A launch configuration delegate performs launching for a
* specific type of launch configuration. A launch configuration
* delegate is defined by the <code>delegate</code> attribute
* of a <code>launchConfigurationType</code> extension.
- * </p>
* <p>
* This interface is intended to be implemented by clients.
* </p>
- * <p>
- * <b>NOTE:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @see org.eclipse.debug.core.ILaunchConfigurationType
* @see ILaunchConfiguration
+ * @since 2.0
*/
public interface ILaunchConfigurationDelegate {
@@ -39,6 +31,13 @@ public interface ILaunchConfigurationDelegate { * configuration. The resulting launch object is registered with the
* launch manager. Returns <code>null</code> if the launch is not
* completed.
+ * <p>
+ * [Issue: this API is being changed. A launch object will be created
+ * and registered before this method is called, and will be passed
+ * as a parameter to this method. This delegate will add targets and
+ * processes to the launch as required. This method will not return
+ * a value (i.e. will be 'void').]
+ * </p>
*
* @param configuration the configuration to launch
* @param mode the mode in which to launch, one of the mode constants
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java index c81815a85..49f379638 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java @@ -13,11 +13,6 @@ import org.eclipse.debug.core.DebugException; * and a length. Not all debug architectures support the retrieval
* of memory blocks.
*
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @see IMemoryBlockRetrieval
* @since 2.0
*/
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java index 94620a7e7..d6c8a77a5 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java @@ -8,15 +8,10 @@ package org.eclipse.debug.core.model; import org.eclipse.debug.core.DebugException;
/**
- * Some debug targets support the retrieval of arbitrary blocks of
- * memory.
+ * Supports the retrieval of arbitrary blocks of memory.
*
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @see IMemoryBlock
+ * @since 2.0
*/
public interface IMemoryBlockRetrieval {
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java index e8c9399b0..e8fec3d85 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java @@ -11,7 +11,7 @@ import org.eclipse.debug.core.ILaunchConfiguration; /** * A source locator that can be persisted and restored, * to be used with a specfic launch configuration. - * The debug plug-in defines source locator extension + * The debug plug-in defines a source locator extension * point for persistable source locators. * <p> * A source locator extension is defined in <code>plugin.xml</code>. @@ -37,12 +37,6 @@ import org.eclipse.debug.core.ILaunchConfiguration; * <p> * Clients may implement this interface. * </p> - * <p> - * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - * </p> * @see org.eclipse.debug.core.ILaunch * @see IStackFrame * @see org.eclipse.debug.ui.IDebugModelPresentation diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java index 127dda4ff..40c57798b 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java @@ -19,12 +19,6 @@ import org.eclipse.core.runtime.IAdaptable; * provides an implementation of this interface for a
* <code>java.lang.Process</code>.
* </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @see org.eclipse.debug.core.DebugPlugin#newProcess(Process, String)
*/
public interface IProcess extends IAdaptable, ITerminate {
@@ -40,6 +34,8 @@ public interface IProcess extends IAdaptable, ITerminate { * <code>null</code> if this element is not registered with
* an launch. This is a convenience method for
* <code>ILaunchManager.findLaunch(IProcess)</code>.
+ *
+ * [Issue: this API will be changed to never return null.]
*
* @return the launch this process is contained in
*/
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java index 7fd7baf0d..6fecca6ee 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java @@ -8,15 +8,10 @@ package org.eclipse.debug.core.model; import org.eclipse.debug.core.DebugException;
/**
- * Some debug architectures provide access to registers.
* A register is a special kind of variable that is contained
* in a register group. Each register has a name and a value.
+ * Not all debug architectures provide access to registers.
*
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @since 2.0
*/
public interface IRegister extends IVariable {
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java index f9fe6d4e3..4a330f1b9 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java @@ -14,11 +14,6 @@ import org.eclipse.debug.core.DebugException; * grouped logically. For example, a floating point
* register group.
*
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @since 2.0
*/
public interface IRegisterGroup extends IDebugElement {
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java index 7a69c7ff8..181b83dd2 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java @@ -8,15 +8,15 @@ package org.eclipse.debug.core.model; import org.eclipse.debug.core.model.IStackFrame;
/**
- * A source locator locates source elements for stack frames. Each
- * debug session launch (optionally) specifies a source locator which is
+ * A source locator locates source elements for stack frames. A launch (optionally)
+ * specifies a source locator which is
* used to locate source for that debug session. If a launch does not
* provide a source locator, source cannot be displayed.
* Abstraction of source lookup allows clients to hide implementation
* details of source location and representation.
* <p>
- * Generally, an implementor of a debug model will also implement launchers
- * and source locators that work together as a whole. That is, the implementation
+ * Generally, an implementor of a debug model will also implement launch configuration types,
+ * delegates, and source locators that work together as a whole. That is, the implementation
* of a source locator will have knowledge of how to locate a source element
* for a stack frame. For example, a Java stack frame could define API which
* specifies a source file name. A Java source locator would use this information
@@ -31,15 +31,10 @@ import org.eclipse.debug.core.model.IStackFrame; * <p>
* Clients may implement this interface.
* </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @see org.eclipse.debug.core.ILaunch
- * @see IStackFrame
+ * @see org.eclipse.debug.core.model.IStackFrame
* @see org.eclipse.debug.ui.IDebugModelPresentation
+ * @see org.eclipse.debug.core.model.IPersistableSourceLocator
*/
public interface ISourceLocator {
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java index 2336ffb6f..dbdad2fe1 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java @@ -8,25 +8,24 @@ package org.eclipse.debug.core.model; import org.eclipse.debug.core.DebugException;
/**
- * A stack frame represents an execution context in a suspended thread. A
- * stack frame is of element type <code>STACK_FRAME</code>. A stack frame
- * contains variables representing visible locals and arguments at the current
- * execution location. Minimally, a stack frame supports
- * the following capabilities:
+ * A stack frame represents an execution context in a suspended thread.
+ * A stack frame contains variables representing visible locals and arguments at
+ * the current execution location. Minimally, a stack frame supports
+ * the following:
* <ul>
* <li>suspend/resume (convenience to resume this stack frame's thread)
* <li>stepping
* <li>termination (convenience to terminate this stack frame's thread or debug target)
* </ul>
* <p>
- * An debug model implementation may choose to re-use or discard
+ * A debug model implementation may choose to re-use or discard
* stack frames on iterative thread suspensions. Clients
* cannot assume that stack frames are identical or equal across
* iterative thread suspensions and must check for equality on iterative
* suspensions if they wish to re-use the objects.
* </p>
* <p>
- * An debug model implementation that preserves equality
+ * A debug model implementation that preserves equality
* across iterative suspensions may display more desirable behavior in
* some clients. For example, if stack frames are preserved
* while stepping, a UI client would be able to update the UI incrementally,
@@ -35,12 +34,6 @@ import org.eclipse.debug.core.DebugException; * <p>
* Clients may implement this interface.
* </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @see IStep
* @see ISuspendResume
* @see ITerminate
@@ -50,6 +43,7 @@ public interface IStackFrame extends IDebugElement, IStep, ISuspendResume, ITerm * Returns the thread this stack frame is contained in.
*
* @return thread
+ * @since 2.0
*/
public IThread getThread();
/**
@@ -62,6 +56,7 @@ public interface IStackFrame extends IDebugElement, IStep, ISuspendResume, ITerm * status code contains the underlying exception responsible for
* the failure.</li>
* </ul>
+ * @since 2.0
*/
public IVariable[] getVariables() throws DebugException;
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java index efcb247a1..e45970d3e 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java @@ -14,12 +14,6 @@ import org.eclipse.debug.core.DebugException; * <p>
* Clients may implement this interface.
* </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
*/
public interface IStep {
/**
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java index 42704c761..a291aa5ce 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java @@ -16,12 +16,6 @@ import org.eclipse.debug.core.IStreamListener; * provides an implementation of the <code>IStreamsProxy</code>
* interface must also provide an implementation of this interface.
* </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @see IStreamsProxy
*/
public interface IStreamMonitor {
@@ -29,7 +23,7 @@ public interface IStreamMonitor { * Adds the given listener to this stream monitor's registered listeners.
* Has no effect if an identical listener is already registered.
*
- * @param the listener to add
+ * @param listener the listener to add
*/
public void addListener(IStreamListener listener);
/**
@@ -43,7 +37,7 @@ public interface IStreamMonitor { * Removes the given listener from this stream monitor's registered listeners.
* Has no effect if the listener is not already registered.
*
- * @param the listener to remove
+ * @param listener the listener to remove
*/
public void removeListener(IStreamListener listener);
}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java index a75431dca..c43acae4d 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java @@ -17,12 +17,6 @@ import java.io.IOException; * Clients implementing the <code>IProcess</code> interface must also
* provide an implementation of this interface.
* </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @see IProcess
*/
public interface IStreamsProxy {
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java index 35baafec7..d1d08f1cb 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java @@ -13,12 +13,6 @@ import org.eclipse.debug.core.DebugException; * <p>
* Clients may implement this interface.
* </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
*/
public interface ISuspendResume {
/**
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java index b8b9f10b0..3848ffa97 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java @@ -13,12 +13,6 @@ import org.eclipse.debug.core.DebugException; * <p>
* Clients may implement this interface.
* </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
*/
public interface ITerminate {
/**
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java index 41a88a6e3..a350c572c 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java @@ -8,11 +8,10 @@ package org.eclipse.debug.core.model; import org.eclipse.debug.core.DebugException;
/**
- * A thread is a sequential flow of execution in a debug target. A
- * thread is of element type <code>THREAD</code>. A thread contains
- * stack frames. Stack frames are only available when the thread is
- * suspended, and are returned in top-down order.
- * Minimally, a thread supports the following capabilities:
+ * A thread is a sequential flow of execution in a debug target.
+ * A thread contains stack frames. Stack frames are only available when the
+ * thread is suspended, and are returned in top-down order.
+ * Minimally, a thread supports the following:
* <ul>
* <li>suspend/resume
* <li>stepping
@@ -21,12 +20,6 @@ import org.eclipse.debug.core.DebugException; * <p>
* Clients may implement this interface.
* </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @see ISuspendResume
* @see IStep
* @see ITerminate
@@ -45,6 +38,7 @@ public interface IThread extends IDebugElement, ISuspendResume, IStep, ITerminat * <ul><li>Failure communicating with the VM. The DebugException's
* status code contains the underlying exception responsible for
* the failure.</li>
+ * @since 2.0
*/
public IStackFrame[] getStackFrames() throws DebugException;
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java index b60e9cd53..0f6155e35 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java @@ -8,8 +8,7 @@ package org.eclipse.debug.core.model; import org.eclipse.debug.core.DebugException;
/**
- * A value represents the value of a variable. A value is of element type <code>VALUE</code>.
- * A value does not have a parent - instead it has an associated variable.
+ * A value represents the value of a variable.
* A value representing a complex data structure contains variables.
* <p>
* An implementation may choose to re-use or discard
@@ -28,12 +27,6 @@ import org.eclipse.debug.core.DebugException; * <p>
* Clients may implement this interface.
* </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @see IVariable
*/
@@ -85,6 +78,7 @@ public interface IValue extends IDebugElement { * <ul><li>Failure communicating with the VM. The DebugException's
* status code contains the underlying exception responsible for
* the failure.</li>
+ * @since 2.0
*/
public IVariable[] getVariables() throws DebugException;
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java index ec2e910ed..bd08b4e0c 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java @@ -13,12 +13,6 @@ import org.eclipse.debug.core.DebugException; * <p>
* Clients may implement this interface.
* </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @see IVariable
*/
public interface IValueModification {
@@ -43,6 +37,7 @@ public interface IValueModification { * <li>TARGET_REQUEST_FAILED - The request failed in the target
* <li>NOT_SUPPORTED - The capability is not supported by the target
* </ul>
+ * @since 2.0
*/
public void setValue(IValue value) throws DebugException;
@@ -76,6 +71,7 @@ public interface IValueModification { * <li>TARGET_REQUEST_FAILED - The request failed in the target
* <li>NOT_SUPPORTED - The capability is not supported by the target
* </ul>
+ * @since 2.0
*/
public boolean verifyValue(IValue value) throws DebugException;
}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java index cba2cece3..ff02764c3 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java @@ -9,7 +9,7 @@ import org.eclipse.debug.core.DebugException; /**
* A variable represents a visible data structure in a stack frame
- * or value. A variable is of type <code>VARIABLE</code>.
+ * or value.
* Each variable has a value which may in turn contain more variables.
* A variable may support value modification.
* <p>
@@ -29,12 +29,6 @@ import org.eclipse.debug.core.DebugException; * <p>
* Clients may implement this interface.
* </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
* @see IValue
* @see IStackFrame
* @see IValueModification
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html index 3f9882d9c..adb722b52 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html @@ -8,7 +8,7 @@ <body bgcolor="#FFFFFF">
-<p>Defines interfaces for a debug model to support an extensible set of debug architectures.</p>
+<p>Defines interfaces for a debug model elements, source lookup, and launching.</p>
<h2>Package Specification</h2>
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java index 881d846f9..9db6e3fa6 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java @@ -56,6 +56,12 @@ public class BreakpointManager implements IBreakpointManager, IResourceChangeLis * String constants corresponding to XML extension keys
*/
private final static String CLASS = "class"; //$NON-NLS-1$
+
+ /**
+ * Attribute name for the <code>"markerType"</code> attribute of
+ * a breakpoint extension.
+ */
+ private static final String MARKER_TYPE= "markerType"; //$NON-NLS-1$
/**
* A collection of breakpoints registered with this manager.
@@ -177,7 +183,7 @@ public class BreakpointManager implements IBreakpointManager, IResourceChangeLis IExtensionPoint ep= DebugPlugin.getDefault().getDescriptor().getExtensionPoint(DebugPlugin.EXTENSION_POINT_BREAKPOINTS);
IConfigurationElement[] elements = ep.getConfigurationElements();
for (int i= 0; i < elements.length; i++) {
- fBreakpointExtensions.put(elements[i].getAttribute(IBreakpoint.MARKER_TYPE), elements[i]);
+ fBreakpointExtensions.put(elements[i].getAttribute(MARKER_TYPE), elements[i]);
}
}
|