Done !! :-)

Thanks,
Frédéric THOMAS

> Date: Tue, 29 Apr 2014 19:03:39 +0400
> From: alexander.doros...@jetbrains.com
> To: dev@flex.apache.org
> Subject: Re: [FDB] Integration
> 
> Yes, I'd gladly try it. We can switch to personal emails in order not to 
> spam the list.
> 
> On 29.04.2014 18:34, Frédéric THOMAS wrote:
> > Hi Alexander,
> >
> > I downloaded the files you indicated me + some missing files (UI, ShineMP3, 
> > metallica.wav), created an IntelliJ project, build and run successfully the 
> > application with Apache Flex SDK 4.12 / AIR 4.0 + my version of FDB and was 
> > unable to reproduce both of the issues, it worked as expected, so, that's a 
> > good news.
> >
> > Also, not on this test app but on another one [1], I've been able to set a 
> > BP on the worker using IntelliJ once the worker has been loaded but the 
> > variables was not readable and futur stops to the BP didn't work, IJ shows 
> > up the SystemManager class instead.
> >
> > If you are interested to test my version, just tell me and I will send it 
> > to you.
> >
> > Unfortunately, I haven't been able to work on it yesterday but will 
> > continue tonight.
> >
> > Frédéric THOMAS
> >
> > [1] https://github.com/doublefx/downloadFileWorker
> >
> >
> >> Date: Tue, 29 Apr 2014 15:25:23 +0400
> >> From: alexander.doros...@jetbrains.com
> >> To: dev@flex.apache.org
> >> Subject: Re: [FDB] Integration
> >>
> >> Hi Frédéric,
> >> that's great that you are ready to put the effort into fdb with workers
> >> support!
> >>
> >> I have to say that IntelliJ IDEA still doesn't support debugging apps
> >> with workers. I spent some time on it but faced some bugs in fdb that
> >> were not that easy to workaround. That's not an excuse for me and I hope
> >> to finally support workers debug in the next version. Luckily fdb is not
> >> a black box for me any more.
> >>
> >> Below are some of the bugs that I faced. I played with this project:
> >> http://gotoandlearn.com/play.php?id=169. 'Download files' link contains
> >> already compiled MP3Worker.swf which is the main app.
> >>
> >> 1. When the worker is loaded it is impossible to switch to main thread
> >> using 'worker 0' command. Fdb says that active worker has changed but
> >> asking 'info workers' again says that actually it hasn't. See listing [1].
> >>
> >> 2. More important bug for the IDE integration is inability to set
> >> breakpoint without knowing file id. Files that belong to different
> >> workers may have the same id. When I ask to set a breakpoint in a file
> >> with given name but current active worker doesn't have file with this
> >> name then fdb sets the breakpoint inside completely different file that
> >> does belong to the current worker and has the same id as the file where
> >> I asked to set breakpoint. See listing [2].
> >>
> >> Alexander
> >>
> >> [1]
> >>
> >> C:\flex\air_sdk_13.0_asc_2.0\bin>fdb
> >> C:\flex\air_sdk_13.0_asc_2.0\bin>java -Dsun.io.useCanonCaches=false 
> >> -Xms32m -Xmx512m -Dapplication.home="C:\flex\air_sdk_13.0_asc_2.0\bin\.." 
> >> -jar "C:\flex\air_sdk_13.0_asc_2.0\bin\../lib/legacy/fdb.jar"
> >> Adobe fdb (Flash Player Debugger) [build development]
> >> Copyright (c) 2004-2007 Adobe, Inc. All rights reserved.
> >> (fdb) run
> >> Waiting for Player to connect
> >> Player connected; session starting.
> >> Set breakpoints and then type 'continue' to resume the session.
> >> [SWF] C:\work\flex_projects\MP3Worker\bin-debug\MP3Worker.swf - 175?169 
> >> bytes after decompression
> >> (fdb) c
> >> [WorkerCreate] 1
> >> 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'.
> >> (fdb) info workers
> >> Main Thread 0 - Running
> >> Worker 1 - Suspended (Active)
> >> [SWF] C:\work\flex_projects\MP3Worker\bin-debug\MP3Worker.swf - 493?264 
> >> bytes after decompression
> >> Set additional breakpoints as desired, and then type 'continue'.
> >> (fdb) worker 0
> >> *Active worker has changed to worker Main Thread*
> >> Set additional breakpoints as desired, and then type 'continue'.
> >> (fdb) info workers
> >> *Main Thread 0 - Running*
> >> *Worker 1 - Suspended (Active)**
> >> *Set additional breakpoints as desired, and then type 'continue'.
> >> (fdb)
> >>
> >> [2]
> >>
> >> ...
> >> (fdb) info workers
> >> Main Thread 0 - Suspended (Active)
> >> Worker 1 - Suspended
> >> (fdb) show files
> >> 1 /Users/leebrimelow/Documents/Adobe Flash Builder 
> >> 4.6/MP3Worker/src/MP3Worker.as, MP3Worker.as (Main Thread)
> >> 2 /Users/leebrimelow/Documents/Adobe Flash Builder 
> >> 4.6/MP3Worker/src/Workers.as, Workers.as (Main Thread)
> >> 1 /Users/leebrimelow/Documents/Adobe Flash Builder 
> >> 4.6/MP3Worker/src/BackWorker.as, BackWorker.as (Worker 1)
> >> 2 
> >> /Users/kikko/work/tests/shineMP3_alchemy/src/fr/kikko/lab/ShineMP3Encoder.as,
> >>  ShineMP3Encoder.as (Worker 1)
> >> *(fdb) break BackWorker.as:26**
> >> **Breakpoint 2: file MP3Worker.as, line 26**
> >> *(fdb)
> >>
> >>
> >> On 27.04.2014 4:01, Frédéric THOMAS wrote:
> >>> Hi,
> >>>
> >>> To resume a bit what I did and discover today:
> >>>
> >>> 1- I merged the donated code to the the current FDB, keeping the existing 
> >>> fixes and the current ExpressionEvaluator (I guess It is possible to use 
> >>> the new Falcon based implementation modifying the ANT script which builds 
> >>> it, in order to link the Falcon sources).
> >>>
> >>> 2- The new commands are "worker <workerID>" used to select a parlicular 
> >>> worker by its ID and "info workers", this is an example of what gives a 
> >>> break inside a worker and what displays the 2 commands :
> >>>
> >>> (fdb) info workers
> >>> !mainThread! 0 - !workerRunning!
> >>> !inWorker! {worker=1} - !workerSuspended! !workerSelected!
> >>>
> >>> (fdb) worker 0
> >>> !workerChanged! !mainThread!
> >>>
> >>> (fdb) info workers
> >>> !mainThread! 0 - !workerRunning! !workerSelected!
> >>> !inWorker! {worker=1} - !workerSuspended!
> >>>
> >>> (fdb) worker 1
> >>> !workerChanged! 1
> >>>
> >>> (fdb) info workers
> >>> !mainThread! 0 - !workerRunning!
> >>> !inWorker! {worker=1} - !workerSuspended! !workerSelected!
> >>>
> >>> Note for IDE integration:
> >>>
> >>> 1- At the moment, watch, displays and breakpoints are set for 1 
> >>> particular worker, it means, they need to be defined again when a worker 
> >>> starts.
> >>> 2- "info breakpoints" does well display the breakpoints for the same line 
> >>> and on different worker of the same class but without the relative worker 
> >>> ID (I guess it could be easily fixed)
> >>>
> >>> I'll be back on it on Monday.
> >>>
> >>> Frédéric THOMAS                                   
> >                                     
> 
                                          

Reply via email to