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 > > >