@Override public void computeTypeSourcePosition(@NotNull final XNavigatable navigatable) { if (myEvaluationContext.getSuspendContext().isResumed()) return; DebugProcessImpl debugProcess = myEvaluationContext.getDebugProcess(); debugProcess .getManagerThread() .schedule( new JumpToObjectAction.NavigateCommand( getDebuggerContext(), myValueDescriptor, debugProcess, null) { @Override public Priority getPriority() { return Priority.HIGH; } @Override protected void doAction(@Nullable final SourcePosition sourcePosition) { if (sourcePosition != null) { ApplicationManager.getApplication() .runReadAction( new Runnable() { @Override public void run() { navigatable.setSourcePosition( DebuggerUtilsEx.toXSourcePosition(sourcePosition)); } }); } } }); }
@Override public void computeChildren(@NotNull final XCompositeNode node) { if (node.isObsolete()) return; XStackFrame xFrame = getDescriptor().getXStackFrame(); if (xFrame != null) { xFrame.computeChildren(node); return; } myDebugProcess .getManagerThread() .schedule( new DebuggerContextCommandImpl( myDebugProcess.getDebuggerContext(), myDescriptor.getFrameProxy().threadProxy()) { @Override public Priority getPriority() { return Priority.NORMAL; } @Override public void threadAction() { if (node.isObsolete()) return; XValueChildrenList children = new XValueChildrenList(); buildVariablesThreadAction(getFrameDebuggerContext(), children, node); node.addChildren(children, true); } }); }