diff options
Diffstat (limited to 'debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/editors/DisassemblyMarkerAnnotationModel.java')
-rw-r--r-- | debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/editors/DisassemblyMarkerAnnotationModel.java | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/editors/DisassemblyMarkerAnnotationModel.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/editors/DisassemblyMarkerAnnotationModel.java index 0c715b2b635..d6bf7f6f494 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/editors/DisassemblyMarkerAnnotationModel.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/editors/DisassemblyMarkerAnnotationModel.java @@ -9,6 +9,7 @@ import java.util.ArrayList; import org.eclipse.cdt.debug.core.ICBreakpointManager; import org.eclipse.cdt.debug.core.model.ICAddressBreakpoint; +import org.eclipse.cdt.debug.core.model.ICBreakpoint; import org.eclipse.cdt.debug.core.sourcelookup.IDisassemblyStorage; import org.eclipse.cdt.debug.internal.core.breakpoints.CAddressBreakpoint; import org.eclipse.cdt.debug.internal.core.breakpoints.CFunctionBreakpoint; @@ -240,16 +241,19 @@ public class DisassemblyMarkerAnnotationModel extends AbstractMarkerAnnotationMo private Position createPositionFromLineBreakpoint( IMarker marker ) { - if ( fStorage == null ) - return null; - IDebugTarget target = fStorage.getDebugTarget(); - if ( target != null && target.getAdapter( ICBreakpointManager.class ) != null ) + if ( fStorage != null ) { - ICBreakpointManager bm = (ICBreakpointManager)target.getAdapter( ICBreakpointManager.class ); - long address = bm.getBreakpointAddress( DebugPlugin.getDefault().getBreakpointManager().getBreakpoint( marker ) ); - if ( address != 0 ) - { - return createPositionFromAddress( address ); + IBreakpoint breakpoint = DebugPlugin.getDefault().getBreakpointManager().getBreakpoint( marker ); + if ( breakpoint instanceof ICBreakpoint ) + { + IDebugTarget target = fStorage.getDebugTarget(); + if ( target != null && target.getAdapter( ICBreakpointManager.class ) != null ) + { + ICBreakpointManager bm = (ICBreakpointManager)target.getAdapter( ICBreakpointManager.class ); + long address = bm.getBreakpointAddress( (ICBreakpoint)breakpoint ); + if ( address != 0 ) + return createPositionFromAddress( address ); + } } } return null; |