@Override public void moduleLoaded( final IBackend backend, final IProject project, final String moduleName) { try { final ErlangDebugTarget erlangDebugTarget = debugTargetOfBackend(backend.getOtpRpc()); if (erlangDebugTarget != null && erlangDebugTarget.getInterpretedModules().contains(moduleName)) { if (isModuleRunningInInterpreter(erlangDebugTarget, backend.getOtpRpc(), moduleName)) { abortContinueDialog(erlangDebugTarget); } else { final ILaunchConfiguration launchConfiguration = erlangDebugTarget.getLaunch().getLaunchConfiguration(); final EnumSet<ErlDebugFlags> debugFlags = ErlDebugFlags.makeSet( launchConfiguration.getAttribute( ErlRuntimeAttributes.DEBUG_FLAGS, ErlDebugFlags.getFlag(ErlDebugFlags.DEFAULT_DEBUG_FLAGS))); final boolean distributed = debugFlags.contains(ErlDebugFlags.DISTRIBUTED_DEBUG); erlangDebugTarget.interpret(project, moduleName, distributed, true); } } } catch (final CoreException e) { ErlLogger.error(e); } }
private void contextActivated(final ISelection selection) { if (!isAvailable() || !isVisible()) { return; } erlangDebugTarget = null; if (selection instanceof IStructuredSelection) { final IStructuredSelection structuredSelection = (IStructuredSelection) selection; final Object o = structuredSelection.getFirstElement(); if (o instanceof ErlangDebugElement) { final ErlangDebugElement e = (ErlangDebugElement) o; erlangDebugTarget = e.getErlangDebugTarget(); } else if (o instanceof ILaunch) { final ILaunch launch = (ILaunch) o; final IDebugTarget target = launch.getDebugTarget(); if (target instanceof IErlangDebugNode) { final IErlangDebugNode edn = (IErlangDebugNode) target; erlangDebugTarget = edn.getErlangDebugTarget(); } } else if (o instanceof RuntimeProcess) { final RuntimeProcess ep = (RuntimeProcess) o; final ILaunch launch = ep.getLaunch(); final IDebugTarget target = launch.getDebugTarget(); if (target instanceof IErlangDebugNode) { final IErlangDebugNode edn = (IErlangDebugNode) target; erlangDebugTarget = edn.getErlangDebugTarget(); } } if (erlangDebugTarget == null) { ErlLogger.debug("no debug target found for " + selection); return; } final ILaunchConfiguration launchConfiguration = erlangDebugTarget.getLaunch().getLaunchConfiguration(); setViewerInput(launchConfiguration); try { final EnumSet<ErlDebugFlags> debugFlags = ErlDebugFlags.makeSet( launchConfiguration.getAttribute( ErlRuntimeAttributes.DEBUG_FLAGS, ErlDebugFlags.getFlag(ErlDebugFlags.DEFAULT_DEBUG_FLAGS))); distributed = debugFlags.contains(ErlDebugFlags.DISTRIBUTED_DEBUG); } catch (final CoreException e1) { distributed = false; } } listViewer.refresh(); showViewer(); // updateAction(VARIABLES_FIND_ELEMENT_ACTION); // updateAction(FIND_ACTION); }