Search in sources :

Example 1 with ErlDebugFlags

use of org.erlide.runtime.api.ErlDebugFlags in project erlide_eclipse by erlang.

the class InterpretedModulesView method contextActivated.

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);
}
Also used : ILaunchConfiguration(org.eclipse.debug.core.ILaunchConfiguration) IErlangDebugNode(org.erlide.backend.debug.IErlangDebugNode) CoreException(org.eclipse.core.runtime.CoreException) ErlDebugFlags(org.erlide.runtime.api.ErlDebugFlags) RuntimeProcess(org.eclipse.debug.core.model.RuntimeProcess) ILaunch(org.eclipse.debug.core.ILaunch) IDebugTarget(org.eclipse.debug.core.model.IDebugTarget) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) ErlangDebugElement(org.erlide.backend.debug.model.ErlangDebugElement)

Example 2 with ErlDebugFlags

use of org.erlide.runtime.api.ErlDebugFlags in project erlide_eclipse by erlang.

the class ErlangDebuggerBackendListener method moduleLoaded.

@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);
    }
}
Also used : ErlangDebugTarget(org.erlide.backend.debug.model.ErlangDebugTarget) ILaunchConfiguration(org.eclipse.debug.core.ILaunchConfiguration) CoreException(org.eclipse.core.runtime.CoreException) ErlDebugFlags(org.erlide.runtime.api.ErlDebugFlags)

Aggregations

CoreException (org.eclipse.core.runtime.CoreException)2 ILaunchConfiguration (org.eclipse.debug.core.ILaunchConfiguration)2 ErlDebugFlags (org.erlide.runtime.api.ErlDebugFlags)2 ILaunch (org.eclipse.debug.core.ILaunch)1 IDebugTarget (org.eclipse.debug.core.model.IDebugTarget)1 RuntimeProcess (org.eclipse.debug.core.model.RuntimeProcess)1 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)1 IErlangDebugNode (org.erlide.backend.debug.IErlangDebugNode)1 ErlangDebugElement (org.erlide.backend.debug.model.ErlangDebugElement)1 ErlangDebugTarget (org.erlide.backend.debug.model.ErlangDebugTarget)1