Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--debug/org.eclipse.cdt.debug.core/ChangeLog7
-rw-r--r--debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/ICDebugTarget.java2
-rw-r--r--debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/IJumpToAddress.java30
-rw-r--r--debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/IJumpToLine.java31
-rw-r--r--debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java62
-rw-r--r--debug/org.eclipse.cdt.debug.ui/ChangeLog10
-rw-r--r--debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/jump_co.gifbin0 -> 145 bytes
-rw-r--r--debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/jump_co.gifbin0 -> 92 bytes
-rw-r--r--debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/jump_co.gifbin0 -> 112 bytes
-rw-r--r--debug/org.eclipse.cdt.debug.ui/plugin.properties1
-rw-r--r--debug/org.eclipse.cdt.debug.ui/plugin.xml95
-rw-r--r--debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/JumpToLineActionDelegate.java172
-rw-r--r--debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RunToLineActionDelegate.java6
13 files changed, 405 insertions, 11 deletions
diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog
index 19af93a9b1d..d40586f2b0d 100644
--- a/debug/org.eclipse.cdt.debug.core/ChangeLog
+++ b/debug/org.eclipse.cdt.debug.core/ChangeLog
@@ -1,3 +1,10 @@
+2003-02-05 Mikhail Khodjaiants
+ Support of the 'Resume At C/C++ Line' action.
+ * IJumpToLine.java: new
+ * IJumpToAddress.java: new
+ * ICDebugTarget.java
+ * CDebugTarget.java
+
2003-02-04 Mikhail Khodjaiants
Support of the 'Resume Without Signal' action.
* IResumeWithoutSignal.java: new
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/ICDebugTarget.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/ICDebugTarget.java
index e94a9c35c00..ba63b674684 100644
--- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/ICDebugTarget.java
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/ICDebugTarget.java
@@ -21,6 +21,8 @@ public interface ICDebugTarget extends IDebugTarget,
IRestart,
IRunToLine,
IRunToAddress,
+ IJumpToLine,
+ IJumpToAddress,
IResumeWithoutSignal,
IState,
ISwitchToThread,
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/IJumpToAddress.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/IJumpToAddress.java
new file mode 100644
index 00000000000..44393704a47
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/IJumpToAddress.java
@@ -0,0 +1,30 @@
+/*
+ *(c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+package org.eclipse.cdt.debug.core.model;
+
+import org.eclipse.debug.core.DebugException;
+
+/**
+ * Provides the ability to resume a debug target at the given address.
+ *
+ * @since: Feb 5, 2003
+ */
+public interface IJumpToAddress
+{
+ /**
+ * Returns whether this operation is currently available for this element.
+ *
+ * @return whether this operation is currently available
+ */
+ public boolean canJumpToAddress( long address );
+
+ /**
+ * Causes this element to resume the execution at the specified address.
+ *
+ * @exception DebugException on failure. Reasons include:
+ */
+ public void jumpToAddress( long address ) throws DebugException;
+}
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/IJumpToLine.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/IJumpToLine.java
new file mode 100644
index 00000000000..7324fce0d6e
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/IJumpToLine.java
@@ -0,0 +1,31 @@
+/*
+ *(c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+package org.eclipse.cdt.debug.core.model;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.debug.core.DebugException;
+
+/**
+ * Provides the ability to resume a debug target at the given line.
+ *
+ * @since: Feb 5, 2003
+ */
+public interface IJumpToLine
+{
+ /**
+ * Returns whether this operation is currently available for this element.
+ *
+ * @return whether this operation is currently available
+ */
+ public boolean canJumpToLine( IResource resource, int lineNumber );
+
+ /**
+ * Causes this element to resume the execution at the specified line.
+ *
+ * @exception DebugException on failure. Reasons include:
+ */
+ public void jumpToLine( 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 51d8e60acf8..b2e0a38b8f5 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
@@ -66,6 +66,8 @@ import org.eclipse.cdt.debug.core.model.ICWatchpoint;
import org.eclipse.cdt.debug.core.model.IDebuggerProcessSupport;
import org.eclipse.cdt.debug.core.model.IExecFileInfo;
import org.eclipse.cdt.debug.core.model.IGlobalVariable;
+import org.eclipse.cdt.debug.core.model.IJumpToAddress;
+import org.eclipse.cdt.debug.core.model.IJumpToLine;
import org.eclipse.cdt.debug.core.model.IRunToAddress;
import org.eclipse.cdt.debug.core.model.IRunToLine;
import org.eclipse.cdt.debug.core.model.IState;
@@ -907,6 +909,10 @@ public class CDebugTarget extends CDebugElement
return this;
if ( adapter.equals( IRunToAddress.class ) )
return this;
+ if ( adapter.equals( IJumpToLine.class ) )
+ return this;
+ if ( adapter.equals( IJumpToAddress.class ) )
+ return this;
if ( adapter.equals( ICBreakpointManager.class ) )
return this;
if ( adapter.equals( DisassemblyManager.class ) )
@@ -2467,4 +2473,60 @@ public class CDebugTarget extends CDebugElement
targetRequestFailed( e.toString(), e );
}
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.debug.core.model.IJumpToLine#canJumpToLine(IResource, int)
+ */
+ public boolean canJumpToLine( IResource resource, int lineNumber )
+ {
+ // check if supports jump to line
+ return canResume();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.debug.core.model.IJumpToLine#jumpToLine(IResource, int)
+ */
+ public void jumpToLine( IResource resource, int lineNumber ) throws DebugException
+ {
+ if ( !canJumpToLine( resource, lineNumber ) )
+ return;
+ setBreakpoints();
+ ICDILocation location = getCDISession().getBreakpointManager().createLocation( resource.getLocation().lastSegment(), null, lineNumber );
+ try
+ {
+ getCDITarget().jump( location );
+ }
+ catch( CDIException e )
+ {
+ targetRequestFailed( e.toString(), e );
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.debug.core.model.IJumpToAddress#canJumpToAddress(long)
+ */
+ public boolean canJumpToAddress( long address )
+ {
+ // check if supports jump to address
+ return canResume();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.debug.core.model.IJumpToAddress#jumpToAddress(long)
+ */
+ public void jumpToAddress( long address ) throws DebugException
+ {
+ if ( !canJumpToAddress( address ) )
+ return;
+ setBreakpoints();
+ ICDILocation location = getCDISession().getBreakpointManager().createLocation( address );
+ try
+ {
+ getCDITarget().jump( location );
+ }
+ catch( CDIException e )
+ {
+ targetRequestFailed( e.toString(), e );
+ }
+ }
}
diff --git a/debug/org.eclipse.cdt.debug.ui/ChangeLog b/debug/org.eclipse.cdt.debug.ui/ChangeLog
index 217c1805014..98801fbcf21 100644
--- a/debug/org.eclipse.cdt.debug.ui/ChangeLog
+++ b/debug/org.eclipse.cdt.debug.ui/ChangeLog
@@ -1,3 +1,13 @@
+2003-02-05 Mikhail Khodjaiants
+ Implementation of the 'Resume At C/C++ Line' action.
+ * RunToLineActionDelegate.java
+ * JumpToLineActionDelegate.java
+ * plugin.properties
+ * plugin.xml
+ icons/full/clcl16/jump_co.gif
+ icons/full/dlcl16/jump_co.gif
+ icons/full/elcl16/jump_co.gif
+
2003-02-04 Mikhail Khodjaiants
Implementation of the 'Resume Without Signal' action.
* SignalZeroActionDelegate.java
diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/jump_co.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/jump_co.gif
new file mode 100644
index 00000000000..7de2134e81d
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/jump_co.gif
Binary files differ
diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/jump_co.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/jump_co.gif
new file mode 100644
index 00000000000..0107e2ecc6c
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/jump_co.gif
Binary files differ
diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/jump_co.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/jump_co.gif
new file mode 100644
index 00000000000..5239257a8b4
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/jump_co.gif
Binary files differ
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.properties b/debug/org.eclipse.cdt.debug.ui/plugin.properties
index 5d49b9ccab5..e0d31abdb37 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.properties
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.properties
@@ -37,6 +37,7 @@ ManageWatchpointAction.label=Add C/C++ &Watchpoint...
AddExpressionAction.label=Add C/C++ &Expression...
AddAddressBreakpointAction.label=Add &Address Breakpoint...
RunToLineAction.label=Run To C/C++ &Line
+JumpToLineAction.label=Resume At C/C++ Li&ne
ShowFullPathsAction.label=Show Full Paths
ShowFullPathsAction.tooltip=Show Full Paths
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.xml b/debug/org.eclipse.cdt.debug.ui/plugin.xml
index 7547fa2d1b8..597d30500b0 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.xml
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.xml
@@ -135,14 +135,14 @@
</separator>
</menu>
<action
- id="org.eclipse.cdt.debug.ui.internal.actions.RestartActionDelegate"
- hoverIcon="icons/full/clcl16/restart.gif"
- class="org.eclipse.cdt.debug.internal.ui.actions.RestartActionDelegate"
- disabledIcon="icons/full/dlcl16/restart.gif"
+ id="org.eclipse.cdt.debug.internal.ui.actions.JumpToLineActionDelegate"
+ hoverIcon="icons/full/clcl16/jump_co.gif"
+ class="org.eclipse.cdt.debug.internal.ui.actions.JumpToLineActionDelegate"
+ disabledIcon="icons/full/dlcl16/jump_co.gif"
enablesFor="1"
- icon="icons/full/elcl16/restart.gif"
- helpContextId="restart_action_context"
- label="%RestartAction.label"
+ icon="icons/full/elcl16/jump_co.gif"
+ helpContextId="jump_to_line_action_context"
+ label="%JumpToLineAction.label"
menubarPath="org.eclipse.ui.run/stepGroup">
<enablement>
<pluginState
@@ -169,6 +169,23 @@
</enablement>
</action>
<action
+ id="org.eclipse.cdt.debug.ui.internal.actions.RestartActionDelegate"
+ hoverIcon="icons/full/clcl16/restart.gif"
+ class="org.eclipse.cdt.debug.internal.ui.actions.RestartActionDelegate"
+ disabledIcon="icons/full/dlcl16/restart.gif"
+ enablesFor="1"
+ icon="icons/full/elcl16/restart.gif"
+ helpContextId="restart_action_context"
+ label="%RestartAction.label"
+ menubarPath="org.eclipse.ui.run/stepGroup">
+ <enablement>
+ <pluginState
+ value="activated"
+ id="org.eclipse.cdt.debug.ui">
+ </pluginState>
+ </enablement>
+ </action>
+ <action
label="%ManageBreakpointAction.label"
icon="icons/full/obj16/brkp_obj.gif"
helpContextId="manage_breakpoint_action_context"
@@ -364,6 +381,21 @@
</enablement>
</action>
<action
+ label="%JumpToLineAction.label"
+ icon="icons/full/clcl16/jump_co.gif"
+ helpContextId="jump_to_line_action_context"
+ class="org.eclipse.cdt.debug.internal.ui.actions.JumpToLineActionDelegate"
+ menubarPath="additions"
+ enablesFor="1"
+ id="org.eclipse.cdt.debug.internal.ui.actions.JumpToLineActionDelegate">
+ <enablement>
+ <pluginState
+ value="activated"
+ id="org.eclipse.cdt.debug.ui">
+ </pluginState>
+ </enablement>
+ </action>
+ <action
label="%RunToLineAction.label"
icon="icons/full/clcl16/runtoline_co.gif"
helpContextId="run_to_line_action_context"
@@ -505,6 +537,21 @@
</enablement>
</action>
<action
+ menubarPath="additions"
+ class="org.eclipse.cdt.debug.internal.ui.actions.JumpToLineActionDelegate"
+ icon="icons/full/clcl16/jump_co.gif"
+ label="%JumpToLineAction.label"
+ enablesFor="1"
+ id="org.eclipse.cdt.debug.internal.ui.actions.JumpToLineActionDelegate"
+ helpContextId="jump_to_line_action_context">
+ <enablement>
+ <pluginState
+ id="org.eclipse.cdt.debug.ui"
+ value="activated">
+ </pluginState>
+ </enablement>
+ </action>
+ <action
label="%RunToLineAction.label"
icon="icons/full/clcl16/runtoline_co.gif"
helpContextId="run_to_line_action_context"
@@ -627,6 +674,21 @@
</enablement>
</action>
<action
+ menubarPath="additions"
+ label="%JumpToLineAction.label"
+ icon="icons/full/clcl16/jump_co.gif"
+ class="org.eclipse.cdt.debug.internal.ui.actions.JumpToLineActionDelegate"
+ enablesFor="1"
+ id="org.eclipse.cdt.debug.internal.ui.actions.JumpToLineActionDelegate"
+ helpContextId="jump_to_line_action_context">
+ <enablement>
+ <pluginState
+ value="activated"
+ id="org.eclipse.cdt.debug.ui">
+ </pluginState>
+ </enablement>
+ </action>
+ <action
label="%RunToLineAction.label"
icon="icons/full/clcl16/runtoline_co.gif"
helpContextId="run_to_line_action_context"
@@ -711,8 +773,8 @@
id="org.eclipse.cdt.debug.internal.ui.actions.SignalZeroActionDelegate">
<enablement>
<pluginState
- id="org.eclipse.cdt.debug.ui"
- value="activated">
+ value="activated"
+ id="org.eclipse.cdt.debug.ui">
</pluginState>
</enablement>
</action>
@@ -965,6 +1027,21 @@
<action
id="org.eclipse.cdt.debug.internal.ui.AddAddressBreakpointActionDelegate">
</action>
+ <action
+ id="org.eclipse.cdt.debug.internal.ui.actions.JumpToLineActionDelegate">
+ </action>
+ <action
+ id="org.eclipse.cdt.debug.ui.internal.actions.RunToLineActionDelegate">
+ </action>
+ <action
+ id="org.eclipse.cdt.debug.ui.internal.actions.ManageBreakpointActionDelegate">
+ </action>
+ <action
+ id="org.eclipse.cdt.debug.internal.ui.actions.ManageWatchpointActionDelegate">
+ </action>
+ <action
+ id="org.eclipse.cdt.debug.internal.ui.actions.AddExpressionActionDelegate">
+ </action>
</debugActionGroup>
</extension>
<extension
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/JumpToLineActionDelegate.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/JumpToLineActionDelegate.java
new file mode 100644
index 00000000000..ef58f89f4c2
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/JumpToLineActionDelegate.java
@@ -0,0 +1,172 @@
+/*
+ *(c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+package org.eclipse.cdt.debug.internal.ui.actions;
+
+import org.eclipse.cdt.debug.core.model.IJumpToAddress;
+import org.eclipse.cdt.debug.core.model.IJumpToLine;
+import org.eclipse.cdt.debug.core.sourcelookup.IDisassemblyStorage;
+import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IStorage;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.model.IDebugElement;
+import org.eclipse.debug.core.model.IDebugTarget;
+import org.eclipse.debug.ui.DebugUITools;
+import org.eclipse.debug.ui.IDebugUIConstants;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.IStorageEditorInput;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.texteditor.ITextEditor;
+
+/**
+ * Enter type comment.
+ *
+ * @since: Feb 5, 2003
+ */
+public class JumpToLineActionDelegate extends AbstractEditorActionDelegate
+{
+ /**
+ * Constructor for JumpToLineActionDelegate.
+ */
+ public JumpToLineActionDelegate()
+ {
+ super();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.ISelectionListener#selectionChanged(IWorkbenchPart, ISelection)
+ */
+ public void selectionChanged( IWorkbenchPart part, ISelection selection )
+ {
+ IDebugTarget target = null;
+ if ( part.getSite().getId().equals( IDebugUIConstants.ID_DEBUG_VIEW ) )
+ {
+ if ( selection != null && selection instanceof IStructuredSelection )
+ {
+ Object element = ((IStructuredSelection)selection).getFirstElement();
+ if ( element != null && element instanceof IDebugElement )
+ {
+ IDebugTarget target1 = ((IDebugElement)element).getDebugTarget();
+ if ( target1 != null &&
+ ( target1 instanceof IJumpToLine || target1 instanceof IJumpToAddress ) )
+ {
+ target = target1;
+ }
+ }
+ }
+ setDebugTarget( target );
+ update();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IActionDelegate#run(IAction)
+ */
+ public void run( IAction action )
+ {
+ if ( getTargetPart() != null && getTargetPart() instanceof ITextEditor )
+ {
+ IEditorInput input = ((ITextEditor)getTargetPart()).getEditorInput();
+ if ( input != null && input instanceof IFileEditorInput )
+ {
+ IFile file = ((IFileEditorInput)input).getFile();
+ if ( file != null )
+ {
+ ITextSelection selection = (ITextSelection)((ITextEditor)getTargetPart()).getSelectionProvider().getSelection();
+ int lineNumber = selection.getStartLine() + 1;
+ jumpToLine( file, lineNumber );
+ }
+ }
+ else if ( input != null && input instanceof IStorageEditorInput )
+ {
+ try
+ {
+ IStorage storage = ((IStorageEditorInput)input).getStorage();
+ if ( storage != null && storage.getAdapter( IDisassemblyStorage.class ) != null )
+ {
+ IDisassemblyStorage disassemblyStorage = (IDisassemblyStorage)storage.getAdapter( IDisassemblyStorage.class );
+ ITextSelection selection = (ITextSelection)((ITextEditor)getTargetPart()).getSelectionProvider().getSelection();
+ int lineNumber = selection.getStartLine();
+ long address = disassemblyStorage.getAddress( lineNumber );
+ if ( address > 0 )
+ jumpToAddress( address );
+ }
+ }
+ catch( CoreException e )
+ {
+ }
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.debug.internal.ui.actions.AbstractEditorActionDelegate#initializeDebugTarget()
+ */
+ protected void initializeDebugTarget()
+ {
+ setDebugTarget( null );
+ IAdaptable context = DebugUITools.getDebugContext();
+ if ( context != null && context instanceof IDebugElement )
+ {
+ IDebugTarget target = ((IDebugElement)context).getDebugTarget();
+ if ( target != null &&
+ ( target instanceof IJumpToLine || target instanceof IJumpToAddress ) )
+ {
+ setDebugTarget( target );
+ }
+ }
+ }
+
+ protected void jumpToLine( IResource resource, int lineNumber )
+ {
+ IJumpToLine target = (IJumpToLine)getDebugTarget().getAdapter( IJumpToLine.class );
+ if ( target != null )
+ {
+ if ( !target.canJumpToLine( resource, lineNumber ) )
+ {
+ getTargetPart().getSite().getShell().getDisplay().beep();
+ return;
+ }
+ try
+ {
+ target.jumpToLine( resource, lineNumber );
+ }
+ catch( DebugException e )
+ {
+ CDebugUIPlugin.errorDialog( e.getMessage(), e );
+ }
+ }
+ }
+
+ protected void jumpToAddress( long address )
+ {
+ IJumpToAddress target = (IJumpToAddress)getDebugTarget().getAdapter( IJumpToAddress.class );
+ if ( target != null )
+ {
+ if ( !target.canJumpToAddress( address ) )
+ {
+ getTargetPart().getSite().getShell().getDisplay().beep();
+ return;
+ }
+ try
+ {
+ target.jumpToAddress( address );
+ }
+ catch( DebugException e )
+ {
+ CDebugUIPlugin.errorDialog( e.getMessage(), e );
+ }
+ }
+ }
+}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RunToLineActionDelegate.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RunToLineActionDelegate.java
index 013ac4aa315..e73b2569582 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RunToLineActionDelegate.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RunToLineActionDelegate.java
@@ -94,7 +94,8 @@ public class RunToLineActionDelegate extends AbstractEditorActionDelegate
if ( context != null && context instanceof IDebugElement )
{
IDebugTarget target = ((IDebugElement)context).getDebugTarget();
- if ( target != null && target instanceof IRunToLine )
+ if ( target != null &&
+ ( target instanceof IRunToLine || target instanceof IRunToAddress ) )
{
setDebugTarget( target );
}
@@ -115,7 +116,8 @@ public class RunToLineActionDelegate extends AbstractEditorActionDelegate
if ( element != null && element instanceof IDebugElement )
{
IDebugTarget target1 = ((IDebugElement)element).getDebugTarget();
- if ( target1 != null && target1 instanceof IRunToLine )
+ if ( target1 != null &&
+ ( target1 instanceof IRunToLine || target1 instanceof IRunToAddress ) )
{
target = target1;
}

Back to the top