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