IMO, unless the discussion is going to cover proprietary aspects of
IntelliJ, it might be more like the "Apache Way" to share the code in a
git branch and continue to discuss on the list.

On 4/29/14 8:03 AM, "Alexander Doroshko"
<alexander.doros...@jetbrains.com> wrote:

>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/ShineMP3Encode
>>>r.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