/** * Test {@link DSLDebugTargetAdapter#terminate()}. * * @throws DebugException * if fail */ @Test public void terminate() throws DebugException { DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget(); eDebugTarget.setName("Debug target"); final TestEventProcessor testEventProcessor = new TestEventProcessor(); final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null, eDebugTarget, new ModelUpdater(), testEventProcessor); final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget(); debugTarget.terminate(); assertEquals(1, testEventProcessor.getEvents().size()); assertTrue(testEventProcessor.getEvents().get(0) instanceof TerminateRequest); assertEquals(null, ((TerminateRequest)testEventProcessor.getEvents().get(0)).getThreadName()); assertEquals(DebugTargetState.TERMINATING, eDebugTarget.getState()); }
/** * Test {@link DSLDebugTargetAdapter#resume()}. * * @throws DebugException * if fail */ @Test public void resume() throws DebugException { DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget(); eDebugTarget.setName("Debug target"); final TestEventProcessor testEventProcessor = new TestEventProcessor(); final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null, eDebugTarget, new ModelUpdater(), testEventProcessor); final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget(); debugTarget.resume(); assertEquals(1, testEventProcessor.getEvents().size()); assertTrue(testEventProcessor.getEvents().get(0) instanceof ResumeRequest); assertEquals(null, ((ResumeRequest)testEventProcessor.getEvents().get(0)).getThreadName()); }
private String valueSpecialChars(IJavaValue value) { try { if(value.getReferenceTypeName().equals("char")) return "'" + value.getValueString() + "'"; if(value.getReferenceTypeName().equals(String.class.getName())) return "\"" + value.getValueString() + "\""; if(value instanceof IJavaObject) { if(((IJavaObject) value).isNull()) return "null"; else return runtime.getObject((IJavaObject) value, false, null).toString(); } return value.getValueString(); } catch (DebugException e) { e.printStackTrace(); return null; } }
public void setTerminated() { if(launch != null) try { launch.terminate(); } catch (DebugException e) { // e.printStackTrace(); } terminated = true; for(StackFrameModel frame : callStack) frame.setObsolete(); setChanged(); notifyObservers(new Event<IStackFrameModel>(Event.Type.TERMINATION, null)); }
private String valueToString(IJavaValue value) { if(value instanceof IJavaArray) { try { IJavaArray array = (IJavaArray) value; IJavaValue[] values = array.getValues(); String s = ""; for(int i = 0; i < values.length; i++) { if(!s.isEmpty()) s += ", "; s += valueSpecialChars(values[i]); } return "{" + s + "}"; } catch (DebugException e) { e.printStackTrace(); return null; } } else return valueSpecialChars(value); }
/** * {@inheritDoc} * * @see org.eclipse.debug.core.model.IStackFrame#getVariables() */ public IVariable[] getVariables() throws DebugException { final List<IVariable> res = new ArrayList<IVariable>(); for (Variable variable : getHost().getVariables()) { synchronized(variable) { final IVariable var = (IVariable)factory.adapt(variable, IVariable.class); if (var != null) { res.add(var); } else { throw new IllegalStateException("can't addapt Variable to IVariable."); } } } return res.toArray(new IVariable[res.size()]); }
/** * {@inheritDoc} * * @see org.eclipse.debug.core.model.IValue#getValueString() */ public String getValueString() throws DebugException { StringBuilder builder = new StringBuilder(BUFFER_SIZE); builder.append('['); if (variables.length > 0) { for (IVariable variable : variables) { builder = builder.append(variable.getValue().getValueString()); builder = builder.append(", "); } builder = builder.delete(builder.length() - ", ".length(), builder.length()); } builder.append(']'); return builder.toString(); }
public IArrayModel getArray(String fieldName) { try { IJavaFieldVariable field = getContent().getField(fieldName, false); if(field == null) throw new IllegalArgumentException(fieldName + " is not a field"); // if(!(field.getJavaType() instanceof IJavaArrayType)) // throw new IllegalArgumentException(fieldName + " is not an array field"); IEntityModel t = references.get(fieldName).getModelTarget(); return t instanceof IArrayModel ? (IArrayModel) t : null; } catch (DebugException e) { e.printStackTrace(); return null; } }
@Override public String toString() { int lim = Math.min(PandionJView.getMaxArrayLength(), elements.length); String els = "{"; for(int i = 0; i < lim; i++) { if(i != 0) els += ", "; try { els += getElementString(i); } catch (DebugException e) { els = "?"; } } if(lim < elements.length) els += ", ..."; if(els.length() == 1) els += " "; els += "}"; return els; }
private void traverseSiblings(IEntityModel e, ObjectModel parent, int index, Set<IEntityModel> set, SiblingVisitor v, int depth, String field, boolean visitNulls) throws DebugException { assert e != null; if(!set.contains(e)) { set.add(e); if(!(e instanceof NullModel) || visitNulls) { v.visit(e, parent, index, depth, field); } if(e instanceof ObjectModel) { ObjectModel obj = (ObjectModel) e; int i = 0; for(String siblingRef : refsOfSameType) { ReferenceModel refModel = obj.references.get(siblingRef); IEntityModel o = refModel.getModelTarget(); traverseSiblings(o, obj, i++, set, v, depth+1, siblingRef, visitNulls); } } } }
private String calcString() { try { IJavaVariable[] localVariables = frame.getLocalVariables(); int nArgs = frame.getArgumentTypeNames().size(); List<String> args = new ArrayList<>(localVariables.length); for(int i = 0; i < localVariables.length && i < nArgs ; i++) { if(PrimitiveType.isPrimitive(localVariables[i].getReferenceTypeName())) { IJavaValue value = (IJavaValue) localVariables[i].getValue(); args.add(valueToString(value)); } else args.add(localVariables[i].getName()); } if(frame.isStaticInitializer()) return frame.getDeclaringTypeName() + " (static initializer)"; else if(frame.isConstructor()) return "new " + toSimpleName(frame.getReferenceType().getName()) + "(" + String.join(", ", args) + ")"; else { String ret = frame.getMethodName() + "(" + String.join(", ", args) + ")"; if(returnValue != null) ret += " = " + returnValue; return ret; } } catch (DebugException e) { // e.printStackTrace(); return super.toString(); } }
@Override public IStackFrame getTopStackFrame() throws DebugException { if (frames == null) { calculateFrames(); } return frames.get(0); }
public Dimension getMatrixDimension() { if(!isMatrix()) throw new IllegalStateException("not a matrix"); try { return new Dimension(getLength() == 0 ? 0 : ((IJavaArray) elements[0]).getLength(), getLength()); } catch (DebugException e) { e.printStackTrace(); getRuntimeModel().setTerminated(); } return new Dimension(0, 0); }
/** * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}. * * @throws DebugException * if fail */ @Test public void handleEventSpawnRunningThreadReply() throws DebugException { DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget(); eDebugTarget.setName("Debug target"); final TestEventProcessor testEventProcessor = new TestEventProcessor(); final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null, eDebugTarget, new ModelUpdater(), testEventProcessor); final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget(); TestDebugEventSetListener listener = new TestDebugEventSetListener(); createThreads(eDebugTarget); debugTarget.getThreads(); // force adapter creation to avoid create event DebugPlugin.getDefault().addDebugEventListener(listener); final EObject context = DebugPackage.eINSTANCE.getDebugFactory().createVariable(); try { debugTarget.handleEvent(new SpawnRunningThreadReply("thread", context)); listener.waitForEvent(); } finally { DebugPlugin.getDefault().removeDebugEventListener(listener); } assertEquals(9, eDebugTarget.getThreads().size()); assertEquals(1, listener.getEventsList().size()); DebugEvent[] events = listener.getEventsList().get(0); assertEquals(1, events.length); DebugEvent event = events[0]; assertTrue(event.getSource() == debugTarget); assertEquals(DebugEvent.CHANGE, event.getKind()); assertEquals(DebugEvent.CONTENT, event.getDetail()); }
/** * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}. * * @throws DebugException * if fail */ @Test public void handleEventResumingReply() throws DebugException { DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget(); eDebugTarget.setName("Debug target"); final TestEventProcessor testEventProcessor = new TestEventProcessor(); final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null, eDebugTarget, new ModelUpdater(), testEventProcessor); final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget(); TestDebugEventSetListener listener = new TestDebugEventSetListener(); createThreads(eDebugTarget); debugTarget.getThreads(); // force adapter creation to avoid create event DebugPlugin.getDefault().addDebugEventListener(listener); try { debugTarget.handleEvent(new ResumingReply(eDebugTarget.getThreads().get(suspendedThreadIndex) .getName())); listener.waitForEvent(); } finally { DebugPlugin.getDefault().removeDebugEventListener(listener); } assertEquals(2, listener.getEventsList().size()); DebugEvent[] events = listener.getEventsList().get(0); assertEquals(1, events.length); DebugEvent event = events[0]; assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get( suspendedThreadIndex))); assertEquals(DebugEvent.RESUME, event.getKind()); assertEquals(DebugEvent.CLIENT_REQUEST, event.getDetail()); events = listener.getEventsList().get(1); assertEquals(1, events.length); event = events[0]; assertTrue(event.getSource() == debugTarget); assertEquals(DebugEvent.CHANGE, event.getKind()); assertEquals(DebugEvent.STATE, event.getDetail()); }
/** * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}. * * @throws DebugException * if fail */ @Test public void handleEventStepOverResumingReply() throws DebugException { DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget(); eDebugTarget.setName("Debug target"); final TestEventProcessor testEventProcessor = new TestEventProcessor(); final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null, eDebugTarget, new ModelUpdater(), testEventProcessor); final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget(); TestDebugEventSetListener listener = new TestDebugEventSetListener(); createThreads(eDebugTarget); debugTarget.getThreads(); // force adapter creation to avoid create event DebugPlugin.getDefault().addDebugEventListener(listener); try { debugTarget.handleEvent(new StepOverResumingReply(eDebugTarget.getThreads().get( suspendedThreadIndex).getName())); listener.waitForEvent(); } finally { DebugPlugin.getDefault().removeDebugEventListener(listener); } assertEquals(2, listener.getEventsList().size()); DebugEvent[] events = listener.getEventsList().get(0); assertEquals(1, events.length); DebugEvent event = events[0]; assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get( suspendedThreadIndex))); assertEquals(DebugEvent.RESUME, event.getKind()); assertEquals(DebugEvent.STEP_OVER, event.getDetail()); events = listener.getEventsList().get(1); assertEquals(1, events.length); event = events[0]; assertTrue(event.getSource() == debugTarget); assertEquals(DebugEvent.CHANGE, event.getKind()); assertEquals(DebugEvent.STATE, event.getDetail()); }
/** * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}. * * @throws DebugException * if fail */ @Test public void handleEventVariableReply() throws DebugException { DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget(); eDebugTarget.setName("Debug target"); final TestEventProcessor testEventProcessor = new TestEventProcessor(); final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null, eDebugTarget, new ModelUpdater(), testEventProcessor); final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget(); TestDebugEventSetListener listener = new TestDebugEventSetListener(); createThreads(eDebugTarget); debugTarget.getThreads(); // force adapter creation to avoid create event DebugPlugin.getDefault().addDebugEventListener(listener); try { debugTarget.handleEvent(new VariableReply(eDebugTarget.getThreads().get(suspendedThreadIndex) .getName(), eDebugTarget.getThreads().get(suspendedThreadIndex).getTopStackFrame() .getName(), "Object", "variable", null, false)); listener.waitForEvent(); } finally { DebugPlugin.getDefault().removeDebugEventListener(listener); } assertEquals(1, eDebugTarget.getThreads().get(suspendedThreadIndex).getTopStackFrame().getVariables() .size()); assertEquals(1, listener.getEventsList().size()); DebugEvent[] events = listener.getEventsList().get(0); assertEquals(1, events.length); DebugEvent event = events[0]; assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get( suspendedThreadIndex))); assertEquals(DebugEvent.CHANGE, event.getKind()); assertEquals(DebugEvent.CONTENT, event.getDetail()); }
/** * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}. * * @throws DebugException * if fail */ @Test public void handleEventDeleteVariableReply() throws DebugException { DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget(); eDebugTarget.setName("Debug target"); final TestEventProcessor testEventProcessor = new TestEventProcessor(); final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null, eDebugTarget, new ModelUpdater(), testEventProcessor); final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget(); TestDebugEventSetListener listener = new TestDebugEventSetListener(); createThreads(eDebugTarget); debugTarget.getThreads(); // force adapter creation to avoid create event ThreadUtils.setVariableReply(eDebugTarget.getThreads().get(suspendedThreadIndex).getTopStackFrame(), "Object", "variable", null, false); DebugPlugin.getDefault().addDebugEventListener(listener); try { debugTarget.handleEvent(new DeleteVariableReply(eDebugTarget.getThreads().get( suspendedThreadIndex).getName(), "variable")); listener.waitForEvent(); } finally { DebugPlugin.getDefault().removeDebugEventListener(listener); } assertEquals(0, eDebugTarget.getThreads().get(suspendedThreadIndex).getTopStackFrame().getVariables() .size()); assertEquals(1, listener.getEventsList().size()); DebugEvent[] events = listener.getEventsList().get(0); assertEquals(1, events.length); DebugEvent event = events[0]; assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get( suspendedThreadIndex))); assertEquals(DebugEvent.CHANGE, event.getKind()); assertEquals(DebugEvent.CONTENT, event.getDetail()); }
/** * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}. * * @throws DebugException * if fail */ @Test public void handleEventPushStackFrameReply() throws DebugException { DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget(); eDebugTarget.setName("Debug target"); final TestEventProcessor testEventProcessor = new TestEventProcessor(); final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null, eDebugTarget, new ModelUpdater(), testEventProcessor); final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget(); TestDebugEventSetListener listener = new TestDebugEventSetListener(); createThreads(eDebugTarget); debugTarget.getThreads(); // force adapter creation to avoid create event final EObject context = DebugPackage.eINSTANCE.getDebugFactory().createVariable(); final EObject instruction = DebugPackage.eINSTANCE.getDebugFactory().createVariable(); DebugPlugin.getDefault().addDebugEventListener(listener); try { debugTarget.handleEvent(new PushStackFrameReply(eDebugTarget.getThreads().get( suspendedThreadIndex).getName(), "frame", context, instruction, false)); listener.waitForEvent(); } finally { DebugPlugin.getDefault().removeDebugEventListener(listener); } assertEquals("frame", eDebugTarget.getThreads().get(suspendedThreadIndex).getTopStackFrame() .getName()); assertEquals(1, listener.getEventsList().size()); DebugEvent[] events = listener.getEventsList().get(0); assertEquals(1, events.length); DebugEvent event = events[0]; assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get( suspendedThreadIndex))); assertEquals(DebugEvent.CHANGE, event.getKind()); assertEquals(DebugEvent.CONTENT, event.getDetail()); }
static void stepOver(ExecutionEvent event) { if(launch != null) { try { for(IThread t : launch.getDebugTarget().getThreads()) if(t.canStepOver()) t.stepOver(); } catch (DebugException e) { e.printStackTrace(); } } // showView(event); }
public String getElementString(int i) throws DebugException { // if(primitiveType == null) { IReferenceModel ref = (IReferenceModel) elementsModel.get(i); IEntityModel target = ref.getModelTarget(); if(target.isNull()) return "null"; else if(target instanceof IObjectModel) return ((IObjectModel) target).getStringValue(); else return target.toString(); // } // else // return elements[i].getValueString(); }
public <T> T executeInternal(PandionJUI.DebugOperation<T> r, T defaultValue) { try { return r.run(); } catch(DebugException e) { e.printStackTrace(); runtime.setTerminated(); return null; } }
private void handleFrames(IJavaThread thread) throws DebugException { assert thread != null; if(introScreen != null) { introScreen.dispose(); introScreen = null; } if(thread.getLaunch() != launch) { launch = thread.getLaunch(); runtime = new RuntimeModel(); if(runtimeView != null) runtimeView.dispose(); runtimeView = new RuntimeViewer(parent); runtimeView.setInput(runtime); runtimeView.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); runtimeView.requestLayout(); } contextService.activateContext(PandionJConstants.CONTEXT_ID); runtime.update(thread); if(!runtime.isEmpty() && !runtime.isTerminated()) { StackFrameModel frame = runtime.getTopFrame(); IFile sourceFile = frame.getSourceFile(); int lineNumber = frame.getLineNumber(); if(sourceFile != null && lineNumber != -1) ;//PandionJUI.navigateToLine(sourceFile, lineNumber); } }
static void stepReturn(ExecutionEvent event) { if(launch != null) { try { for(IThread t : launch.getDebugTarget().getThreads()) if(t.canStepReturn()) t.stepReturn(); } catch (DebugException e) { e.printStackTrace(); } } // showView(event); }
static void terminate(ExecutionEvent event) { if(launch != null) { try { IDebugTarget debugTarget = launch.getDebugTarget(); if(debugTarget != null) debugTarget.terminate(); } catch (DebugException e) { e.printStackTrace(); } } // showView(event); }
/** * {@inheritDoc} * * @see org.eclipse.debug.core.model.IValueModification#verifyValue(java.lang.String) */ public boolean verifyValue(String expression) throws DebugException { Object response = factory.getDebugger().handleEvent( new ValidateVariableValueRequest(ThreadUtils.getThread(getHost().getFrame()).getName(), getHost().getFrame().getName(), getHost().getName(), expression)); return Boolean.TRUE == response; }
private Object getValues(IJavaArray javaArray) { try { String compType = getComponentType(javaArray); int dimensions = getDimensions(javaArray); PrimitiveType primitive = PrimitiveType.match(compType); IJavaValue[] values = javaArray.getValues(); Object array = null; if(primitive != null) { Class<?> type = primitive.getArrayClass(dimensions); array = Array.newInstance(type, values.length); } else array = Array.newInstance(Object.class, values.length); if(getDimensions(javaArray) == 1) { if(primitive == null) { for(int j = 0; j < values.length; j++) if(!values[j].isNull()) Array.set(array, j, values[j].getValueString()); } else { primitive.fillPrimitiveValues(array, values); } } else { for(int i = 0; i < values.length; i++) { IJavaValue val = values[i]; if(!val.isNull()) Array.set(array, i, getValues((IJavaArray) val)); } } return array; } catch (DebugException e) { e.printStackTrace(); getRuntimeModel().setTerminated(); return new Object[0]; } }
/** * {@inheritDoc} * * @see org.eclipse.debug.core.model.IStep#stepInto() */ public void stepInto() throws DebugException { factory.getDebugger() .handleEvent( new StepIntoRequest(getHost().getName(), getHost().getTopStackFrame() .getCurrentInstruction())); }
static void resume(ExecutionEvent event) { if(launch != null) { try { IDebugTarget debugTarget = launch.getDebugTarget(); if(debugTarget != null) debugTarget.resume(); } catch (DebugException e) { e.printStackTrace(); } } // showView(event); }
public int getLineNumber() { try { return frame.getLineNumber(); } catch (DebugException e) { e.printStackTrace(); return -1; } }
public void update() throws DebugException { handleVariables(); step++; stepPointer = step; stepLines.put(step, lastLine); try { lastLine = frame.getLineNumber(); } catch (DebugException e) { e.printStackTrace(); } setChanged(); notifyObservers(new IStackFrameModel.StackEvent<Object>(StackEvent.Type.STEP, step)); }
@Override public boolean verifyValue(String expression) throws DebugException { // TODO return false; }
public ValueModel(IJavaVariable variable, boolean isInstance, boolean isVisible, VariableInfo var, RuntimeModel runtime) throws DebugException { super(variable, isInstance, isVisible, runtime); assert variable.getValue() instanceof IJavaPrimitiveValue; init(var); }
@Override public void stepInto() throws DebugException { }
public ArrayPrimitiveModel(IJavaArray array, RuntimeModel runtime, IReferenceModel sourceReference) throws DebugException { super(array, runtime); }
/** * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}. * * @throws DebugException * if fail */ @Test public void handleEventStepIntoResumingReply() throws DebugException { DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget(); eDebugTarget.setName("Debug target"); final TestEventProcessor testEventProcessor = new TestEventProcessor(); final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null, eDebugTarget, new ModelUpdater(), testEventProcessor); final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget(); TestDebugEventSetListener listener = new TestDebugEventSetListener(); createThreads(eDebugTarget); debugTarget.getThreads(); // force adapter creation to avoid create event eDebugTarget.getThreads().get(suspendedThreadIndex).getTopStackFrame() .setCanStepIntoCurrentInstruction(true); DebugPlugin.getDefault().addDebugEventListener(listener); try { debugTarget.handleEvent(new StepIntoResumingReply(eDebugTarget.getThreads().get( suspendedThreadIndex).getName())); listener.waitForEvent(); } finally { DebugPlugin.getDefault().removeDebugEventListener(listener); } assertEquals(2, listener.getEventsList().size()); DebugEvent[] events = listener.getEventsList().get(0); assertEquals(1, events.length); DebugEvent event = events[0]; assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get( suspendedThreadIndex))); assertEquals(DebugEvent.RESUME, event.getKind()); assertEquals(DebugEvent.STEP_INTO, event.getDetail()); events = listener.getEventsList().get(1); assertEquals(1, events.length); event = events[0]; assertTrue(event.getSource() == debugTarget); assertEquals(DebugEvent.CHANGE, event.getKind()); assertEquals(DebugEvent.STATE, event.getDetail()); }
public IVariableModel<?> get(StackFrameModel frame, String varName) throws DebugException { String id = frame.getStackFrame().getDeclaringTypeName() + "." + varName; return map.get(id); }
@Override public boolean hasVariables() throws DebugException { return variablesReference != null && variablesReference > 0; }
public VariableModel(IJavaVariable variable, boolean isInstance, boolean isVisible, StackFrameModel stackFrame) throws DebugException { this(variable, isInstance, isVisible, stackFrame.getRuntime()); this.stackFrame = stackFrame; }
@Override public boolean isAllocated() throws DebugException { // TODO return true; }