Search in sources :

Example 21 with Location

use of flash.tools.debugger.Location 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

Location (flash.tools.debugger.Location)21 SourceFile (flash.tools.debugger.SourceFile)15 HashMap (java.util.HashMap)8 InProgressException (flash.tools.debugger.InProgressException)6 NotConnectedException (flash.tools.debugger.NotConnectedException)5 SwfInfo (flash.tools.debugger.SwfInfo)5 Map (java.util.Map)5 PlayerDebugException (flash.tools.debugger.PlayerDebugException)4 DSwfInfo (flash.tools.debugger.concrete.DSwfInfo)4 Frame (flash.tools.debugger.Frame)3 NoResponseException (flash.tools.debugger.NoResponseException)3 ParseException (java.text.ParseException)3 SourceBreakpoint (com.nextgenactionscript.vscode.debug.requests.SourceBreakpoint)2 Breakpoint (com.nextgenactionscript.vscode.debug.responses.Breakpoint)2 Variable (flash.tools.debugger.Variable)2 ArrayList (java.util.ArrayList)2 Source (com.nextgenactionscript.vscode.debug.requests.Source)1 SetBreakpointsResponseBody (com.nextgenactionscript.vscode.debug.responses.SetBreakpointsResponseBody)1 StackFrame (com.nextgenactionscript.vscode.debug.responses.StackFrame)1 StackTraceResponseBody (com.nextgenactionscript.vscode.debug.responses.StackTraceResponseBody)1