/** * Returns whether this event's detail indicates an * evaluation. This event's detail is one * of <code>EVALUATION</code>, or <code>EVALUATION_IMPLICIT</code>. * * @return whether this event's detail indicates an evaluation. * @since 2.0 */ public boolean isEvaluation() { return (getDetail() & (EVALUATION | EVALUATION_IMPLICIT)) > 0; }
/** * Returns whether this event's detail indicates the * beginning of a step event. This event's detail is one * of <code>STEP_INTO</code>, <code>STEP_OVER</code>, or * <code>STEP_RETURN</code>. * * @return whether this event's detail indicates the beginning * of a step event. * @since 2.0 */ public boolean isStepStart() { return (getDetail() & (STEP_INTO | STEP_OVER | STEP_RETURN)) > 0; }
@Override protected void handleChange(DebugEvent event) { int flags = IModelDelta.STATE; if (event.getDetail() == DebugEvent.CONTENT) { flags = flags | IModelDelta.CONTENT; } fireDelta((IDebugTarget) event.getSource(), flags); }
/** * Returns whether the given event is what we expected. * * @param event fire event * @return whether the event is what we expected */ protected boolean isExpectedEvent(DebugEvent event) { return event.getSource().equals(getThread()) && event.getKind() == fExpectedKind && event.getDetail() == fExpectedDetail; } }
@Override public void handleDebugEvents(DebugEvent[] events) { for (int i = 0; i < events.length; i++) { if (events[i].getKind() == DebugEvent.TERMINATE){ fgLogicalCache.clear(); break; } else if (events[i].getKind() == DebugEvent.RESUME && events[i].getDetail() != DebugEvent.EVALUATION_IMPLICIT){ fgLogicalCache.clear(); break; } else if (events[i].getKind() == DebugEvent.SUSPEND && events[i].getDetail() != DebugEvent.EVALUATION_IMPLICIT){ fgLogicalCache.clear(); break; } else if (events[i].getKind() == DebugEvent.CHANGE && events[i].getDetail() == DebugEvent.CONTENT){ fgLogicalCache.clear(); break; } } } });
@Override protected void handleChange(DebugEvent event) { if (event.getDetail() == DebugEvent.STATE) { fireDeltaUpdatingThread((IThread) event.getSource(), IModelDelta.STATE); } else { fireDeltaUpdatingThread((IThread) event.getSource(), IModelDelta.CONTENT); } }
public void handleDebugEvents(DebugEvent[] events) { if (getValue()) { // if showing system threads, no need to worry about displaying/hinding return; } for (int i = 0; i < events.length; i++) { DebugEvent event = events[i]; switch (event.getKind()) { case DebugEvent.SUSPEND: if (event.getDetail() == DebugEvent.BREAKPOINT) { refresh(event.getSource(), true); } break; case DebugEvent.RESUME: if (event.getDetail() == DebugEvent.CLIENT_REQUEST) { refresh(event.getSource(), false); } break; } } }
@Override protected void handleChange(DebugEvent event) { if (event.getDetail() == DebugEvent.STATE) { ModelDelta delta = new ModelDelta(fMemoryBlock, IModelDelta.STATE); fireModelChanged(delta); } else { ModelDelta delta = new ModelDelta(fMemoryBlock, IModelDelta.CONTENT); fireModelChanged(delta); } }
@Override protected void handleChange(DebugEvent event) { IStackFrame frame = (IStackFrame) event.getSource(); ModelDelta root = fThreadHandler.buildRootDelta(); ModelDelta delta = fThreadHandler.addPathToThread(root, frame.getThread()); delta = delta.addNode(frame.getThread(), IModelDelta.NO_CHANGE); int flags = IModelDelta.NO_CHANGE; if (event.getDetail() == DebugEvent.CONTENT) { flags = flags | IModelDelta.CONTENT; } else if (event.getDetail() == DebugEvent.STATE) { flags = flags | IModelDelta.STATE; } delta = delta.addNode(frame, flags); fireDelta(root); }
@Override public void handleDebugEvents(DebugEvent[] events) { for (int i = 0; i < events.length; i++) { DebugEvent event= events[i]; Object source= event.getSource(); if (source instanceof IThread && event.getKind() == DebugEvent.SUSPEND && event.getDetail() == DebugEvent.BREAKPOINT) { IThread thread = (IThread) source; IDebugTarget suspendee = thread.getAdapter(IDebugTarget.class); if (fTarget.equals(suspendee)) { // cleanup if the breakpoint was hit or not cancel(); } } else if (source instanceof IDebugTarget && event.getKind() == DebugEvent.TERMINATE) { if (source.equals(fTarget)) { // Clean up if the debug target terminates without // hitting the breakpoint. cancel(); } } } }
@Override public void handleDebugEvents(DebugEvent[] events) { // open the debugger if this is a suspend event and the debug view is not yet open // and the preferences are set to switch for (int i = 0; i < events.length; i++) { DebugEvent event = events[i]; if (event.getKind() == DebugEvent.SUSPEND && !event.isEvaluation() && event.getDetail() != DebugEvent.STEP_END) { // Don't switch perspective for evaluations or stepping Object source = event.getSource(); if (source instanceof IAdaptable) { IAdaptable adaptable = (IAdaptable) source; ILaunch launch = adaptable.getAdapter(ILaunch.class); if (fLaunch.equals(launch)) { // only notify for this launch notifySuspend(event); } } } } }
@Override protected void handleChange(DebugEvent event) { ModelDelta delta = new ModelDelta(DebugPlugin.getDefault().getExpressionManager(), IModelDelta.NO_CHANGE); IExpression expression = null; if (event.getSource() instanceof IExpression) { expression = (IExpression) event.getSource(); int flags = IModelDelta.NO_CHANGE; if ((event.getDetail() & DebugEvent.STATE) != 0) { flags = flags | IModelDelta.STATE; } if ((event.getDetail() & DebugEvent.CONTENT) != 0) { flags = flags | IModelDelta.CONTENT; } delta.addNode(expression, flags); fireDelta(delta); } if (event.getSource() instanceof IVariable) { IVariable variable = (IVariable) event.getSource(); int flags = IModelDelta.NO_CHANGE; if (event.getDetail()==DebugEvent.CONTENT) { flags = flags | IModelDelta.CONTENT; } delta.addNode(variable, flags); fireDelta(delta); } }
@Override protected void refreshRoot(DebugEvent event) { if (event.getDetail() != DebugEvent.EVALUATION_IMPLICIT) { // Don't refresh everytime an implicit evaluation finishes if (event.getSource() instanceof ISuspendResume) { if (!((ISuspendResume)event.getSource()).isSuspended()) { // no longer suspended return; } } ModelDelta delta = new ModelDelta(fFrame, IModelDelta.CONTENT); fireDelta(delta); } }
/** * @see IDebugEventSetListener#handleDebugEvents(DebugEvent[]) */ public void handleDebugEvents(DebugEvent[] events) { for (int i = 0; i < events.length; i++) { DebugEvent event = events[i]; switch (event.getKind()) { case DebugEvent.TERMINATE: if (event.getSource().equals(getDebugTarget())) { DebugPlugin.getDefault().getExpressionManager().removeExpression(this); } break; case DebugEvent.SUSPEND: if (event.getDetail() != DebugEvent.EVALUATION_IMPLICIT) { if (event.getSource() instanceof IDebugElement) { IDebugElement source = (IDebugElement) event.getSource(); if (source.getDebugTarget().equals(getDebugTarget())) { DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[]{new DebugEvent(this, DebugEvent.CHANGE, DebugEvent.CONTENT)}); } } } break; } } }
@Override protected void handleLateSuspend(DebugEvent suspend, DebugEvent resume) { IThread thread = queueSuspendedThread(suspend); if (suspend.isEvaluation() && suspend.getDetail() == DebugEvent.EVALUATION_IMPLICIT) { // late implicit evaluation - update thread and frame ModelDelta delta = buildRootDelta(); ModelDelta node = addPathToThread(delta, thread); node = node.addNode(thread, IModelDelta.STATE); try { IStackFrame frame = thread.getTopStackFrame(); if (frame != null) { node.addNode(frame, IModelDelta.STATE); fireDelta(delta); } } catch (DebugException e) { } } else { fireDeltaUpdatingSelectedFrame(thread, IModelDelta.STATE | IModelDelta.EXPAND, suspend); } }
private void handleDebugEvent(DebugEvent event) { // update action enablement based on debug event Object src = event.getSource(); IDebugTarget srcDT = null; IDebugTarget selectionDT = null; if (event.getKind() == DebugEvent.TERMINATE) { if (src instanceof ITerminate && src instanceof IDebugElement) { srcDT = ((IDebugElement) src).getDebugTarget(); } if (fCurrentContext instanceof IDebugElement) { selectionDT = ((IDebugElement) fCurrentContext).getDebugTarget(); } // disable action if the debug target is terminated. if (srcDT == selectionDT) { setEnabled(false); } } // handle change event from memory block retrieval object // to allow non-standard debug models to update the action else if (event.getKind() == DebugEvent.CHANGE && event.getDetail() == DebugEvent.STATE) { Object evtSrc = event.getSource(); if (evtSrc == MemoryViewUtil.getMemoryBlockRetrieval(fCurrentContext)) { updateAction(fCurrentContext); } } }
case DebugEvent.CHANGE: if (event.getSource() instanceof IStackFrame) { if (event.getDetail() == DebugEvent.CONTENT) { frame = (IStackFrame) event.getSource(); fLookupResults.remove(new ArtifactWithLocator(frame, frame.getLaunch().getSourceLocator()));
if (event.getDetail() == DebugEvent.STATE){ getTableRendering(fInput).updateLabels();