Search in sources :

Example 6 with PlayerDebugException

use of flash.tools.debugger.PlayerDebugException in project intellij-plugins by JetBrains.

the class DebugCLI method getCurrentLocation.

Location getCurrentLocation() {
    Location where = null;
    try {
        Frame[] ar = m_session.getFrames();
        propertyPut(CURRENT_FRAME_DEPTH, (ar.length > 0) ? ar.length : 0);
        where = ((ar.length > 0) ? ar[0].getLocation() : null);
    } catch (PlayerDebugException pde) {
    // where == null
    }
    return where;
}
Also used : Frame(flash.tools.debugger.Frame) PlayerDebugException(flash.tools.debugger.PlayerDebugException) Location(flash.tools.debugger.Location)

Example 7 with PlayerDebugException

use of flash.tools.debugger.PlayerDebugException in project intellij-plugins by JetBrains.

the class DebugCLI method dumpBreakLine.

void dumpBreakLine(boolean postStep, StringBuffer sb) throws NotConnectedException {
    int bp = -1;
    //$NON-NLS-1$
    String name = getLocalizationManager().getLocalizedTextString("unknownFilename");
    int line = -1;
    // clear our current frame display
    propertyPut(DISPLAY_FRAME_NUMBER, 0);
    /* dump a context line to the console */
    Location l = getCurrentLocation();
    // figure out why we stopped
    int reason = SuspendReason.Unknown;
    try {
        reason = m_session.suspendReason();
    } catch (PlayerDebugException pde) {
    }
    // then see if it because of a swfloaded event
    if (reason == SuspendReason.ScriptLoaded) {
        // since the player takes a long time to provide swf/swd, try 80 * 250ms = ~20s
        if (propertyGet(METADATA_ATTEMPTS) > 0)
            try {
                waitForMetaData(80);
            } catch (InProgressException ipe) {
            }
        m_fileInfo.setDirty();
        processEvents();
        propagateBreakpoints();
        //$NON-NLS-1$
        sb.append(getLocalizationManager().getLocalizedTextString("additionalCodeLoaded"));
        sb.append(m_newline);
        if (resolveBreakpoints(sb))
            //$NON-NLS-1$
            sb.append(getLocalizationManager().getLocalizedTextString("setAdditionalBreakpoints") + m_newline);
        else
            //$NON-NLS-1$
            sb.append(getLocalizationManager().getLocalizedTextString("fixBreakpoints") + m_newline);
    } else if (l == null || l.getFile() == null) {
        // no idea where we are ?!?
        propertyPut(LAST_FRAME_DEPTH, 0);
        //$NON-NLS-1$
        sb.append(getLocalizationManager().getLocalizedTextString("executionHalted"));
        sb.append(' ');
        /** disable this line (and enable the one after) if implementation Extensions are not provided */
        appendBreakInfo(sb);
    //sb.append("unknown location");
    } else {
        SourceFile file = l.getFile();
        name = file.getName();
        line = l.getLine();
        String funcName = file.getFunctionNameForLine(m_session, line);
        // where were we last time
        int lastModule = propertyGet(LIST_MODULE);
        int lastDepth = propertyGet(LAST_FRAME_DEPTH);
        int thisModule = file.getId();
        // triggered via getCurrentLocation()
        int thisDepth = propertyGet(CURRENT_FRAME_DEPTH);
        // mark where we stopped
        propertyPut(LAST_FRAME_DEPTH, thisDepth);
        // if we have changed our context or we are not spitting out source then dump our location
        if (!postStep || lastModule != thisModule || lastDepth != thisDepth) {
            // is it a fault?
            String reasonForHalting;
            if (reason == SuspendReason.Fault || reason == SuspendReason.StopRequest) {
                StringBuffer s = new StringBuffer();
                appendReason(s, reason);
                reasonForHalting = s.toString();
            } else // if its a breakpoint add that information
            if ((bp = enabledBreakpointIndexOf(l)) > -1) {
                Map args = new HashMap();
                //$NON-NLS-1$
                args.put("breakpointNumber", Integer.toString(breakpointAt(bp).getId()));
                //$NON-NLS-1$
                reasonForHalting = getLocalizationManager().getLocalizedTextString("hitBreakpoint", args);
            } else {
                //$NON-NLS-1$
                reasonForHalting = getLocalizationManager().getLocalizedTextString("executionHalted");
            }
            Map args = new HashMap();
            //$NON-NLS-1$
            args.put("reasonForHalting", reasonForHalting);
            //$NON-NLS-1$
            args.put("fileAndLine", name + ':' + line);
            String formatString;
            if (funcName != null) {
                //$NON-NLS-1$
                args.put("functionName", funcName);
                //$NON-NLS-1$
                formatString = "haltedInFunction";
            } else {
                //$NON-NLS-1$
                formatString = "haltedInFile";
            }
            sb.append(getLocalizationManager().getLocalizedTextString(formatString, args));
            if (!m_fullnameOption)
                sb.append(m_newline);
        }
        // set current listing poistion and emit emacs trigger
        setListingPosition(thisModule, line);
        // dump our source line if not in emacs mode
        if (!m_fullnameOption)
            appendSource(sb, file.getId(), line, file.getLine(line), false);
    }
}
Also used : InProgressException(flash.tools.debugger.InProgressException) HashMap(java.util.HashMap) PlayerDebugException(flash.tools.debugger.PlayerDebugException) SourceFile(flash.tools.debugger.SourceFile) Map(java.util.Map) HashMap(java.util.HashMap) Location(flash.tools.debugger.Location)

Example 8 with PlayerDebugException

use of flash.tools.debugger.PlayerDebugException in project intellij-plugins by JetBrains.

the class DebugCLI method dumpBreakLine.

void dumpBreakLine(boolean postStep, StringBuilder sb) throws NotConnectedException {
    int bp = -1;
    //$NON-NLS-1$
    String name = getLocalizationManager().getLocalizedTextString("unknownFilename");
    int line = -1;
    // clear our current frame display
    propertyPut(DISPLAY_FRAME_NUMBER, 0);
    /* dump a context line to the console */
    Location l = getCurrentLocation();
    // figure out why we stopped
    int reason = SuspendReason.Unknown;
    try {
        reason = m_session.suspendReason();
    } catch (PlayerDebugException pde) {
    }
    // then see if it because of a swfloaded event
    if (reason == SuspendReason.ScriptLoaded) {
        // since the player takes a long time to provide swf/swd, try 80 * 250ms = ~20s
        if (propertyGet(METADATA_ATTEMPTS) > 0)
            try {
                waitForMetaData(80);
            } catch (InProgressException ipe) {
            }
        m_fileInfo.setDirty();
        processEvents();
        propagateBreakpoints();
        //$NON-NLS-1$
        sb.append(getLocalizationManager().getLocalizedTextString("additionalCodeLoaded"));
        sb.append(m_newline);
        if (resolveBreakpoints(sb))
            //$NON-NLS-1$
            sb.append(getLocalizationManager().getLocalizedTextString("setAdditionalBreakpoints") + m_newline);
        else
            //$NON-NLS-1$
            sb.append(getLocalizationManager().getLocalizedTextString("fixBreakpoints") + m_newline);
    } else if (l == null || l.getFile() == null) {
        // no idea where we are ?!?
        propertyPut(LAST_FRAME_DEPTH, 0);
        //$NON-NLS-1$
        sb.append(getLocalizationManager().getLocalizedTextString("executionHalted"));
        sb.append(' ');
        /** disable this line (and enable the one after) if implementation Extensions are not provided */
        appendBreakInfo(sb);
    //sb.append("unknown location");
    } else {
        SourceFile file = l.getFile();
        name = file.getName();
        line = l.getLine();
        String funcName = file.getFunctionNameForLine(m_session, line);
        // where were we last time
        int lastModule = propertyGet(LIST_MODULE);
        int lastDepth = propertyGet(LAST_FRAME_DEPTH);
        int thisModule = file.getId();
        // triggered via getCurrentLocation()
        int thisDepth = propertyGet(CURRENT_FRAME_DEPTH);
        // mark where we stopped
        propertyPut(LAST_FRAME_DEPTH, thisDepth);
        // if we have changed our context or we are not spitting out source then dump our location
        if (!postStep || lastModule != thisModule || lastDepth != thisDepth) {
            // is it a fault?
            String reasonForHalting;
            if (reason == SuspendReason.Fault || reason == SuspendReason.StopRequest) {
                StringBuilder s = new StringBuilder();
                appendReason(s, reason);
                reasonForHalting = s.toString();
            } else // if its a breakpoint add that information
            if ((bp = enabledBreakpointIndexOf(l)) > -1) {
                Map<String, Object> args = new HashMap<String, Object>();
                //$NON-NLS-1$
                args.put("breakpointNumber", Integer.toString(breakpointAt(bp).getId()));
                //$NON-NLS-1$
                reasonForHalting = getLocalizationManager().getLocalizedTextString("hitBreakpoint", args);
            } else {
                //$NON-NLS-1$
                reasonForHalting = getLocalizationManager().getLocalizedTextString("executionHalted");
            }
            Map<String, Object> args = new HashMap<String, Object>();
            //$NON-NLS-1$
            args.put("reasonForHalting", reasonForHalting);
            //$NON-NLS-1$
            args.put("fileAndLine", name + ':' + line);
            String formatString;
            if (funcName != null) {
                //$NON-NLS-1$
                args.put("functionName", funcName);
                //$NON-NLS-1$
                formatString = "haltedInFunction";
            } else {
                //$NON-NLS-1$
                formatString = "haltedInFile";
            }
            sb.append(getLocalizationManager().getLocalizedTextString(formatString, args));
            if (!m_fullnameOption)
                sb.append(m_newline);
        }
        // set current listing poistion and emit emacs trigger
        setListingPosition(thisModule, line);
        // dump our source line if not in emacs mode
        if (!m_fullnameOption)
            appendSource(sb, file.getId(), line, file.getLine(line), false);
    }
}
Also used : InProgressException(flash.tools.debugger.InProgressException) HashMap(java.util.HashMap) PlayerDebugException(flash.tools.debugger.PlayerDebugException) SourceFile(flash.tools.debugger.SourceFile) Map(java.util.Map) HashMap(java.util.HashMap) Location(flash.tools.debugger.Location)

Aggregations

PlayerDebugException (flash.tools.debugger.PlayerDebugException)8 HashMap (java.util.HashMap)5 Map (java.util.Map)5 Frame (flash.tools.debugger.Frame)3 InProgressException (flash.tools.debugger.InProgressException)3 Location (flash.tools.debugger.Location)3 SourceBreakpoint (com.nextgenactionscript.vscode.debug.requests.SourceBreakpoint)2 Breakpoint (com.nextgenactionscript.vscode.debug.responses.Breakpoint)2 StackFrame (com.nextgenactionscript.vscode.debug.responses.StackFrame)2 NoResponseException (flash.tools.debugger.NoResponseException)2 SourceFile (flash.tools.debugger.SourceFile)2 Value (flash.tools.debugger.Value)2 PlayerFaultException (flash.tools.debugger.expression.PlayerFaultException)2 ArrayList (java.util.ArrayList)2 Scope (com.nextgenactionscript.vscode.debug.responses.Scope)1 ScopesResponseBody (com.nextgenactionscript.vscode.debug.responses.ScopesResponseBody)1 Variable (com.nextgenactionscript.vscode.debug.responses.Variable)1 VariablesResponseBody (com.nextgenactionscript.vscode.debug.responses.VariablesResponseBody)1 NotConnectedException (flash.tools.debugger.NotConnectedException)1 NotSuspendedException (flash.tools.debugger.NotSuspendedException)1