> IDE will not set/remove breakpoints per worker, only for all workers, 
> this seems to be what users expect.

Really ? look at the Java breakpoint window, it allows to set a BP for all 
threads and also for a particular thread if I'm not wrong, why not for Flex as 
it is now possible ? we don't have the same needs and expetactions than the 
Java devs ?

> I plan to work on this when IntelliJ IDEA 14 EAP starts (early July). 
> Actually I have no time to work on this earlier as I have very tight 
> schedule now: a week for urgent tasks, then 2.5 weeks of vacation, then 
> 1.5 weeks of business trip to Google I/O in San Francisco.

Thanks for the info.
Frédéric THOMAS

> Date: Thu, 29 May 2014 16:20:59 +0400
> From: alexander.doros...@jetbrains.com
> To: dev@flex.apache.org
> Subject: Re: [FDB] Integration
> 
> Thanks for additional explanations!
> IDE will not set/remove breakpoints per worker, only for all workers, 
> this seems to be what users expect.
> Yep, there can be some headache if the same or different breakpoints are 
> hit in different workers, I hope I'll sort it out at IDE side.
> I plan to work on this when IntelliJ IDEA 14 EAP starts (early July). 
> Actually I have no time to work on this earlier as I have very tight 
> schedule now: a week for urgent tasks, then 2.5 weeks of vacation, then 
> 1.5 weeks of business trip to Google I/O in San Francisco.
> 
> Alex
> 
> On 29.05.2014 16:04, Frédéric THOMAS wrote:
> > Ok great, just to be sure you not take me wrong and understand the concept, 
> > please follow this commented FDB session:
> >
> > Apache fdb (Flash Player Debugger) [build development]
> > Copyright 2013 The Apache Software Foundation. All rights reserved.
> > (fdb) run
> > Waiting for Player to connect
> > Player connected; session starting.
> > Set breakpoints and then type 'continue' to resume the session.
> > (fdb) run
> > Session already in progress
> > [SWF] MP3Worker.swf - 181 081 bytes after decompression
> > (fdb) where
> > #0   this = [Object 40199809, class='global'].global$init() at <null>:0
> > (fdb) info workers
> > Main Thread 0 - Suspended (Active)
> > ******************************************************************
> > I set a BP on a function that will break very often
> > ******************************************************************
> > (fdb) break mx/core/DebuggableWorker.as:56
> > Breakpoint 1: file DebuggableWorker.as, line 56
> > (fdb) c
> > [WorkerCreate] 1
> > ******************************************************************
> > When an instance of the worker using it is created, the break is propagated
> > ******************************************************************
> > Breakpoint 1: file DebuggableWorker.as, line 56
> > Additional ActionScript code has been loaded from a SWF or a frame.
> > To see all currently loaded files, type 'info files'.
> > Active worker has changed to worker 1
> >
> > Set additional breakpoints as desired, and then type 'continue'.
> > ******************************************************************
> > As you can see in the result of info break
> > ******************************************************************
> > (fdb) info break
> > Num Type           Disp Enb Address    What
> > 1   breakpoint     keep y   0x00000000 in debugTickler() at 
> > DebuggableWorker.as:56 (Worker 0 / 1)
> > [SWF] MP3Worker.swf - 528 227 bytes after decompression
> > Set additional breakpoints as desired, and then type 'continue'.
> > ******************************************************************
> > Here, info workers indicate that both workers are suspended:
> > worker 1 because it has just been created.
> > Worker 0 because a break event has been receive from the player (aka our BP 
> > has been met).
> > ******************************************************************
> > (fdb) info workers
> > Main Thread 0 - Suspended
> > Worker 1 - Suspended (Active)
> > Set additional breakpoints as desired, and then type 'continue'.
> > (fdb) c
> > ******************************************************************
> > A 'continue' command show us that even 3 break event have been received for 
> > this worker
> > ******************************************************************
> > Active worker has changed to worker 0
> > Breakpoint 1, debugTickler() at DebuggableWorker.as:56
> >   56            var i:int = 0;
> > (fdb) c
> > Breakpoint 1, debugTickler() at DebuggableWorker.as:56
> >   56            var i:int = 0;
> > (fdb) c
> > Breakpoint 1, debugTickler() at DebuggableWorker.as:56
> >   56            var i:int = 0;
> > (fdb) c
> > ******************************************************************
> > And then for worker 1
> > ******************************************************************
> > Active worker has changed to worker 1
> > Breakpoint 1, debugTickler() at DebuggableWorker.as:56
> >   56            var i:int = 0;
> >   ******************************************************************
> >   Now, even if I clear the BP on worker 0
> >   ******************************************************************
> > (fdb) clear @0:mx/core/DebuggableWorker.as:56
> > Active worker has changed to worker Main Thread
> > Active worker has changed to worker 1
> > (fdb) info break
> > Num Type           Disp Enb Address    What
> > 1   breakpoint     keep y   0x00000000 in debugTickler() at 
> > DebuggableWorker.as:56 (Worker 1)
> >          breakpoint already hit 4 time(s)
> > ******************************************************************
> > worker 0 is still suspended, we received 3 break events from worker 1 and 1 
> > from worker 0
> > FDB will then stop 1 more time on this BP, I guess you don't want that at 
> > IDE level
> > as the user already removed the BP, you may want to check if the current 
> > break
> > is still set in the IDE, if not, just 'continue'
> > ******************************************************************
> > (fdb) info workers
> > Main Thread 0 - Suspended
> > Worker 1 - Suspended (Active)
> > (fdb) c
> > Breakpoint 1, debugTickler() at DebuggableWorker.as:56
> >   56            var i:int = 0;
> > (fdb) c
> > Breakpoint 1, debugTickler() at DebuggableWorker.as:56
> >   56            var i:int = 0;
> > (fdb) c
> > ******************************************************************
> > here is the extra break
> > ******************************************************************
> > Active worker has changed to worker 0
> > Execution halted, debugTickler() at DebuggableWorker.as:56
> >   56            var i:int = 0;
> > (fdb) show break
> > Stopped in 'MP3Worker.swf' at 0xffffffff (-1) due to Breakpoint
> > (fdb) c
> >
> > Active worker has changed to worker 1
> > Breakpoint 1, debugTickler() at DebuggableWorker.as:56
> >   56            var i:int = 0;
> > (fdb) c
> > Breakpoint 1, debugTickler() at DebuggableWorker.as:56
> >   56            var i:int = 0;
> > (fdb) c
> > Breakpoint 1, debugTickler() at DebuggableWorker.as:56
> >   56            var i:int = 0;
> > (fdb) delete break 1
> > (fdb) c
> > halt
> > Do you want to attempt to halt execution? (y or n) y
> > Attempting to halt.
> > To help out, try nudging the Player (e.g. press a button)
> > Execution halted at 0x0000066a (1642)
> > (fdb) where
> > #0   this = [Object 174826401, class='SetIntervalTimer'].Timer/tick() at 
> > <null>:0
> > (fdb) info break
> > Num Type           Disp Enb Address    What
> > (fdb) info workers
> > Main Thread 0 - Running
> > Worker 1 - Suspended (Active)
> > (fdb) quit
> >
> > Frédéric THOMAS                                     
> 
                                          

Reply via email to