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