Search code examples
eclipseflash-builder

Flash Builder deactivates breakpoints (sometimes)


For many of my Flash Builder (4.0, 4.5 or 4.6) projects, after a while Flash Builder debugger starts ignoring the breakpoints I placed. When this happens, the breakpoints show up as just a blue dot, instead of a blue dot with a checkmark on it.

All new breakpoints I place after the swf starts, work.

I suspect that it has something to do with the fact that I attach the debugger to a swf running on a server. In the Run/Debug Settings, the url is "http://localhost/xxxxx" instead of direct link to the swf.

As I mention, this doesn't happen all the time. Sometimes, the breakpoints I placed a few hours ago start working.

It is especially annoying when I want to stop at a breakpoint during the initialization.

Anybody has any idea what is causing this and how to get around it?

Thanks.


Solution

  • We've encountered this problem too, and found that the following seems to work:

    1. Remove all break points from the app.
    2. Do a clean build
    3. Start app
    4. Set a breakpoint. It should work.

    Most of the time you can skip step 2, if it still doesn't work try again including it.


    We've managed to track the problem to a bug in the Flash debugger. It throws the following exception while starting a run with breakpoints already set:

    flash.tools.debugger.InProgressException
        at flash.tools.debugger.concrete.DSwfInfo.swdLoaded(DSwfInfo.java:153)
        at flash.tools.debugger.concrete.DSwfInfo.getSourceList(DSwfInfo.java:129)
        at flash.tools.debugger.threadsafe.ThreadSafeSwfInfo.getSourceList(ThreadSafeSwfInfo.java:78)
        at com.adobe.flexbuilder.debug.breakpoints.FlexLineBreakpoint.findSourceFiles(FlexLineBreakpoint.java:414)
        at com.adobe.flexbuilder.debug.breakpoints.FlexLineBreakpoint.instantiate(FlexLineBreakpoint.java:467)
        at com.adobe.flexbuilder.debug.model.FlexDebugTarget.instantiateBreakpoint(FlexDebugTarget.java:1172)
        at com.adobe.flexbuilder.debug.model.FlexDebugTarget.access$4(FlexDebugTarget.java:1166)
        at com.adobe.flexbuilder.debug.model.FlexDebugTarget$FdbThread.installDeferredBreakpoints(FlexDebugTarget.java:653)
        at com.adobe.flexbuilder.debug.model.FlexDebugTarget$FdbThread.advanceStateMachine(FlexDebugTarget.java:684)
        at com.adobe.flexbuilder.debug.model.FlexDebugTarget$FdbThread.access$7(FlexDebugTarget.java:658)
        at com.adobe.flexbuilder.debug.model.FlexDebugTarget$FdbThread$1.run(FlexDebugTarget.java:771)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at com.adobe.flexbuilder.debug.model.FlexDebugTarget$FdbThread.eventLoop(FlexDebugTarget.java:748)
        at com.adobe.flexbuilder.debug.model.FlexDebugTarget$FdbThread.run(FlexDebugTarget.java:812)
        at java.lang.Thread.run(Thread.java:680)