From f172ffa642921cde09cb44774551020ec862943b Mon Sep 17 00:00:00 2001 From: Mikhail Khodjaiants Date: Mon, 20 Sep 2004 21:05:48 +0000 Subject: [PATCH] Fix for bug 73920: Stopping CDT debug at a break point and using a non-text editor throws an error. --- debug/org.eclipse.cdt.debug.ui/ChangeLog | 6 ++++++ .../ui/actions/ResumeAtLineActionDelegate.java | 3 +++ .../debug/internal/ui/actions/RunToLineAdapter.java | 12 ++++++------ .../internal/ui/actions/ToggleBreakpointAdapter.java | 7 +++---- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.ui/ChangeLog b/debug/org.eclipse.cdt.debug.ui/ChangeLog index b7c7393c4b0..0e71f642ffa 100644 --- a/debug/org.eclipse.cdt.debug.ui/ChangeLog +++ b/debug/org.eclipse.cdt.debug.ui/ChangeLog @@ -1,3 +1,9 @@ +2004-09-20 Mikhail Khodjaiants + Fix for bug 73920: Stopping CDT debug at a break point and using a non-text editor throws an error. + * ResumeAtLineActionDelegate.java + * RunToLineAdapter.java + * ToggleBreakpointAdapter.java + 2004-09-20 Mikhail Khodjaiants Evaluate expressions on stack frame instead of target to provide evaluation context. Evaluate the hovering expression for the selected context only. diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/ResumeAtLineActionDelegate.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/ResumeAtLineActionDelegate.java index 3e646cba2d3..e75ed8d39cf 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/ResumeAtLineActionDelegate.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/ResumeAtLineActionDelegate.java @@ -222,6 +222,9 @@ public class ResumeAtLineActionDelegate implements IWorkbenchWindowActionDelegat if ( input == null ) { return false; } + if ( !(editorPart instanceof ITextEditor) ) { + return false; + } ITextEditor textEditor = (ITextEditor)editorPart; IDocument document = textEditor.getDocumentProvider().getDocument( input ); if ( document == null ) { diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RunToLineAdapter.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RunToLineAdapter.java index 3263161931d..90f7e3a90b0 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RunToLineAdapter.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RunToLineAdapter.java @@ -31,7 +31,6 @@ import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.ITextSelection; import org.eclipse.jface.viewers.ISelection; import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IFileEditorInput; import org.eclipse.ui.IStorageEditorInput; import org.eclipse.ui.IWorkbenchPart; @@ -50,14 +49,13 @@ public class RunToLineAdapter implements IRunToLineTarget { */ public void runToLine( IWorkbenchPart part, ISelection selection, ISuspendResume target ) throws CoreException { String errorMessage = null; - if ( part instanceof IEditorPart ) { - IEditorPart editorPart = (IEditorPart)part; - IEditorInput input = editorPart.getEditorInput(); + if ( part instanceof ITextEditor ) { + ITextEditor textEditor = (ITextEditor)part; + IEditorInput input = textEditor.getEditorInput(); if ( input == null ) { errorMessage = ActionMessages.getString( "RunToLineAdapter.Empty_editor_1" ); //$NON-NLS-1$ } else { - ITextEditor textEditor = (ITextEditor)editorPart; IDocument document = textEditor.getDocumentProvider().getDocument( input ); if ( document == null ) { errorMessage = ActionMessages.getString( "RunToLineAdapter.Missing_document_1" ); //$NON-NLS-1$ @@ -107,7 +105,9 @@ public class RunToLineAdapter implements IRunToLineTarget { * org.eclipse.debug.core.model.ISuspendResume) */ public boolean canRunToLine( IWorkbenchPart part, ISelection selection, ISuspendResume target ) { - return target instanceof IDebugElement && ((IDebugElement)target).getModelIdentifier().equals( CDIDebugModel.getPluginIdentifier() ); + if ( part instanceof DisassemblyView || part instanceof ITextEditor ) + return target instanceof IDebugElement && ((IDebugElement)target).getModelIdentifier().equals( CDIDebugModel.getPluginIdentifier() ); + return false; } private String getFileName( IEditorInput input ) throws CoreException { diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/ToggleBreakpointAdapter.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/ToggleBreakpointAdapter.java index 866da0f3025..be269986ba9 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/ToggleBreakpointAdapter.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/ToggleBreakpointAdapter.java @@ -55,14 +55,13 @@ public class ToggleBreakpointAdapter implements IToggleBreakpointsTarget { */ public void toggleLineBreakpoints( IWorkbenchPart part, ISelection selection ) throws CoreException { String errorMessage = null; - if ( part instanceof IEditorPart ) { - IEditorPart editorPart = (IEditorPart)part; - IEditorInput input = editorPart.getEditorInput(); + if ( part instanceof ITextEditor ) { + ITextEditor textEditor = (ITextEditor)part; + IEditorInput input = textEditor.getEditorInput(); if ( input == null ) { errorMessage = ActionMessages.getString( "ToggleBreakpointAdapter.Empty_editor_1" ); //$NON-NLS-1$ } else { - ITextEditor textEditor = (ITextEditor)editorPart; IDocument document = textEditor.getDocumentProvider().getDocument( input ); if ( document == null ) { errorMessage = ActionMessages.getString( "ToggleBreakpointAdapter.Missing_document_1" ); //$NON-NLS-1$