diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/IRunToLine.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/IRunToLine.java
new file mode 100644
index 00000000000..4dfb32d4f22
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/IRunToLine.java
@@ -0,0 +1,32 @@
+/*
+ *(c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+package org.eclipse.cdt.debug.core;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.debug.core.DebugException;
+
+/**
+ *
+ * Provides the ability to run a debug target to the given line.
+ *
+ * @since Sep 19, 2002
+ */
+public interface IRunToLine
+{
+ /**
+ * Returns whether this operation is currently available for this element.
+ *
+ * @return whether this operation is currently available
+ */
+ public boolean canRunToLine( IResource resource, int lineNumber );
+
+ /**
+ * Causes this element to run to specified location.
+ *
+ * @exception DebugException on failure. Reasons include:
+ */
+ public void runToLine( IResource resource, int lineNumber ) throws DebugException;
+}
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java
index 54fb57f32d4..ddbcd8856af 100644
--- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java
@@ -21,6 +21,7 @@ import org.eclipse.cdt.debug.core.ICWatchpoint;
import org.eclipse.cdt.debug.core.IFormattedMemoryBlock;
import org.eclipse.cdt.debug.core.IFormattedMemoryRetrieval;
import org.eclipse.cdt.debug.core.IRestart;
+import org.eclipse.cdt.debug.core.IRunToLine;
import org.eclipse.cdt.debug.core.IState;
import org.eclipse.cdt.debug.core.cdi.CDIException;
import org.eclipse.cdt.debug.core.cdi.ICDIBreakpointHit;
@@ -55,6 +56,7 @@ import org.eclipse.cdt.debug.internal.core.CSourceLocator;
import org.eclipse.cdt.debug.internal.core.breakpoints.CBreakpoint;
import org.eclipse.core.resources.IMarkerDelta;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.DebugEvent;
import org.eclipse.debug.core.DebugException;
@@ -82,6 +84,7 @@ public class CDebugTarget extends CDebugElement
implements IDebugTarget,
ICDIEventListener,
IRestart,
+ IRunToLine,
IFormattedMemoryRetrieval,
IState,
ILaunchListener,
@@ -1789,4 +1792,26 @@ public class CDebugTarget extends CDebugElement
targetRequestFailed( e.getMessage(), null );
}
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.debug.core.IRunToLine#canRunToLine(IResource, int)
+ */
+ public boolean canRunToLine( IResource resource, int lineNumber )
+ {
+ // check if supports run to line
+ return canResume();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.debug.core.IRunToLine#runToLine(IResource, int)
+ */
+ public void runToLine( IResource resource, int lineNumber ) throws DebugException
+ {
+ if ( !canRunToLine( resource, lineNumber ) )
+ {
+ return;
+ }
+ setInternalTemporaryBreakpoint( getCDISession().getBreakpointManager().createLocation( resource.getLocation().lastSegment(), null, lineNumber ) );
+ resume();
+ }
}
diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/runtoline_co.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/runtoline_co.gif
new file mode 100644
index 00000000000..a5a56e36a2e
Binary files /dev/null and b/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/runtoline_co.gif differ
diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/runtoline_co.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/runtoline_co.gif
new file mode 100644
index 00000000000..786a24535a2
Binary files /dev/null and b/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/runtoline_co.gif differ
diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/runtoline_co.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/runtoline_co.gif
new file mode 100644
index 00000000000..2ec717803cc
Binary files /dev/null and b/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/runtoline_co.gif differ
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.properties b/debug/org.eclipse.cdt.debug.ui/plugin.properties
index 4fcf1584e41..726d80ffc6a 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.properties
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.properties
@@ -26,3 +26,4 @@ ManageBreakpointAction.label=Add/Remove C/C++ Brea&kpoint
BreakpointPropertiesAction.label=P&roperties...
ManageWatchpointAction.label=Add C/C++ &Watchpoint...
AddExpressionAction.label=Add C/C++ &Expression...
+RunToLineAction.label=Run To C/C++ &Line
\ No newline at end of file
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.xml b/debug/org.eclipse.cdt.debug.ui/plugin.xml
index 9e2b7dbd186..4775d2e9bc2 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.xml
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.xml
@@ -120,6 +120,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+