> > I created 2 tickets [1] for the merge, [2] for the fix, I 
attached it the fixed FDB. Main thread with the target file is not 
paused
> Switching workers when VM is paused after new worker creation seems to 
> work now, that' great!
> Setting a breakpoint to the file that is not loaded yet and will be 
> loaded later by a new worker also seems to work, that's even more cool!

Yep :-)

> I still see the issue with setting a breakpoint in incorrect file when 
> all workers are loaded but the file belongs to non active one. See [1]
> > Next steps:
> > 1- Fix the bad message when a file is not found
> What do you mean?

It seems I meant just what you said:
> I still see the issue with setting a breakpoint in incorrect file when 
> all workers are loaded but the file belongs to non active one. See [1]

But I reduced my sentence to the message:
> Breakpoint 1: file MP3Worker.as, line 30 // WRONG FILE

> > BTW IntelliJ uses only breakpoints, no watches and displays.

I will still need to apply the same logic to each potential command that could 
have the same issue.

> - 'break' command may be called with file name or with file id. If it is 
> called with file id then probably the right thing is to apply the 
> command to the current worker only

Good point, I keep that !

> - the same file may belong to several workers. So probably fdb should 
> iterate all suspended workers and try to set the breakpoint for all that 
> contain this file.

I would have suspended all workers instead and place a BP in each if it belongs 
to.
Why to put some BP in on the suspended ones ?

> - new workers that contain this file may appear later. And each existing 
> worker that doesn't contain the file may get new bytecode loaded with 
> this file. So despite of the result of the previous attempts fdb should 
> remember the breakpoint location and try to set it for all new workers 
> that appear later. Also each time when new code is loaded fdb should try 
> to set breakpoint again for each existing worker that didn't contain the 
> file before.

Yep, was my goal too.

Frédéric THOMAS

> Date: Wed, 30 Apr 2014 15:37:38 +0400
> From: alexander.doros...@jetbrains.com
> To: dev@flex.apache.org
> Subject: Re: [FDB] Integration
> 
> On 30.04.2014 14:14, Frédéric THOMAS wrote:
> > I created 2 tickets [1] for the merge, [2] for the fix, I attached it the 
> > fixed FDB. Main thread with the target file is not paused
> Switching workers when VM is paused after new worker creation seems to 
> work now, that' great!
> Setting a breakpoint to the file that is not loaded yet and will be 
> loaded later by a new worker also seems to work, that's even more cool!
> I still see the issue with setting a breakpoint in incorrect file when 
> all workers are loaded but the file belongs to non active one. See [1]
> > Next steps:
> > 1- Fix the bad message when a file is not found
> What do you mean?
> > 2- New feature: Automaticaly set back the breakpoints, watches and displays 
> > when another instance of the worker is created and the "-ide" argument is 
> > passed to FDB
> The feature needs to be thoroughly thought over. There are too many 
> cases to keep in mind:
> - 'break' command may be called with file name or with file id. If it is 
> called with file id then probably the right thing is to apply the 
> command to the current worker only
> - if 'break' command is followed by the file name then still there are a 
> lot of cases:
> - definitely fdb should try to find this file in the current worker and 
> set breakpoint if found
> - the same file may belong to several workers. So probably fdb should 
> iterate all suspended workers and try to set the breakpoint for all that 
> contain this file.
> - new workers that contain this file may appear later. And each existing 
> worker that doesn't contain the file may get new bytecode loaded with 
> this file. So despite of the result of the previous attempts fdb should 
> remember the breakpoint location and try to set it for all new workers 
> that appear later. Also each time when new code is loaded fdb should try 
> to set breakpoint again for each existing worker that didn't contain the 
> file before.
> 
> BTW IntelliJ uses only breakpoints, no watches and displays.
> 
> > 3- In the Falcon repo, merge FDB with its classes using the Falcon AST
> >
> > Any comments are welcome.
> >
> > Frédéric THOMAS
> >
> > [1] https://issues.apache.org/jira/browse/FLEX-34291
> > [2] https://issues.apache.org/jira/browse/FLEX-34292
> [1]
> Apache fdb (Flash Player Debugger) [build 20140430]
> 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) c
> [SWF] C:\work\flex_projects\MP3Worker\bin-debug\MP3Worker.swf - 175а169 
> bytes after decompression
> [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) c
> [SWF] C:\work\flex_projects\MP3Worker\bin-debug\MP3Worker.swf - 493а264 
> bytes after decompression
> 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 0x00009aeb (39659)
> (fdb) worker 0
> Active worker has changed to worker Main Thread
> (fdb) halt
> Attempting to suspend Player execution...
> Player stopped
> (fdb) info workers
> Main Thread 0 - Suspended (Active)
> Worker 1 - Suspended
> (fdb) break BackWorker.as:30
> Breakpoint 1: file MP3Worker.as, line 30 // WRONG FILE
> 
                                          

Reply via email to