/** * Sets the evaluation context for the given page, and notes that * a valid execution context exists. * * @param page * @param frame */ private void setContext(IWorkbenchPage page, IJavaStackFrame frame, boolean instOf) { if (fContextsByPage == null) { fContextsByPage = new HashMap(); } fContextsByPage.put(page, frame); System.setProperty(DEBUGGER_ACTIVE, "true"); //$NON-NLS-1$ if (frame.canForceReturn()) { System.setProperty(SUPPORTS_FORCE_RETURN, "true"); //$NON-NLS-1$ } else { System.setProperty(SUPPORTS_FORCE_RETURN, "false"); //$NON-NLS-1$ } if (((IJavaDebugTarget)frame.getDebugTarget()).supportsInstanceRetrieval()){ System.setProperty(SUPPORTS_INSTANCE_RETRIEVAL, "true"); //$NON-NLS-1$ } else { System.setProperty(SUPPORTS_INSTANCE_RETRIEVAL, "false"); //$NON-NLS-1$ } if (instOf) { System.setProperty(INSTANCE_OF_IJAVA_STACK_FRAME, "true"); //$NON-NLS-1$ } else { System.setProperty(INSTANCE_OF_IJAVA_STACK_FRAME, "false"); //$NON-NLS-1$ } }
public Object handleStatus(IStatus status, Object source) { if (source instanceof IDebugElement) { IDebugElement element = (IDebugElement) source; IJavaDebugTarget target = (IJavaDebugTarget) element.getDebugTarget().getAdapter(IJavaDebugTarget.class); if (target != null) { IJavaStackFrame frame = EvaluationContextManager.getEvaluationContext((IWorkbenchWindow)null); if (frame != null && frame.getDebugTarget().equals(target)) { return frame; } } } return null; }
public Object handleStatus(IStatus status, Object source) { if (source instanceof IDebugElement) { IDebugElement element = (IDebugElement) source; IJavaDebugTarget target = (IJavaDebugTarget) element.getDebugTarget().getAdapter(IJavaDebugTarget.class); if (target != null) { IJavaStackFrame frame = EvaluationContextManager.getEvaluationContext((IWorkbenchWindow)null); if (frame != null && frame.getDebugTarget().equals(target)) { return frame.getThread(); } } } return null; }
protected void run() { IJavaStackFrame stackFrame= getStackFrameContext(); if (stackFrame != null) { try { String returnType = Signature.getReturnType(stackFrame.getSignature()); if (Signature.SIG_VOID.equals(returnType)) { // no evaluation required for void methods stackFrame.forceReturn(((IJavaDebugTarget)stackFrame.getDebugTarget()).voidValue()); return; } } catch (DebugException e) { JDIDebugUIPlugin.statusDialog(e.getStatus()); return; } } fTargetFrame = stackFrame; // perform evaluation otherwise super.run(); }
/** * Fills the given menu with available stratum. * * @param m */ private void fillMenu(Menu m) { IStackFrame frame = (IStackFrame) fSelection.getFirstElement(); final IJavaStackFrame javaStackFrame = (IJavaStackFrame) frame.getAdapter(IJavaStackFrame.class); try { IJavaReferenceType declaringType = javaStackFrame.getReferenceType(); final IJavaDebugTarget target = (IJavaDebugTarget) javaStackFrame.getDebugTarget(); String currentStratum = target.getDefaultStratum(); String[] strata = declaringType.getAvailableStrata(); for (int i = 0; i < strata.length; i++) { final String stratum = strata[i]; MenuItem item = createMenuItem(m, stratum, javaStackFrame, target); item.setSelection(stratum.equals(currentStratum)); } MenuItem item = createMenuItem(m, null, javaStackFrame, target); item.setSelection(currentStratum == null); } catch (DebugException e) { } }
engine = JDIDebugPlugin.getDefault().getEvaluationEngine(project, (IJavaDebugTarget)stackFrame.getDebugTarget()); setEvaluating(true); boolean hitBreakpoints= JDIDebugModel.getPreferences().getBoolean(JDIDebugModel.PREF_SUSPEND_FOR_BREAKPOINTS_DURING_EVALUATION);
return; IAstEvaluationEngine evaluationEngine= JDIDebugPlugin.getDefault().getEvaluationEngine(project, (IJavaDebugTarget) fStackFrame.getDebugTarget());
IJavaDebugTarget target = (IJavaDebugTarget) f.getDebugTarget(); IBreakpoint[] bps = jt.getBreakpoints();
IField field = (IField)javaElement; IJavaVariable variable = null; IJavaDebugTarget debugTarget = (IJavaDebugTarget)frame.getDebugTarget(); if (Flags.isStatic(field.getFlags())) { IJavaType[] javaTypes = debugTarget.getJavaTypes(field.getDeclaringType().getFullyQualifiedName());