http://bugs.freepascal.org/view.php?id=19296

On 05/05/2011 22:43, Flávio Etrusco wrote:
Of course. It only that I often wanted this in lazarus when I needed
several instances to run concurrently.

Since the discussion about the patch was started on the list, I decided to continue it here, rather than to move it to mantis.

I understand your requirement, but as indicated I (and apparently others) are not comfortable with the solution in your patch.

IMHO the following additions are acceptable (though I am open to arguments):

1) An build in "Run without debugger", that uses the current "no debugger class" (TProcessDebugger) to launch the app. - This launches a single instance and keeps track of it (same as setting debugger to none) [1]
- It disables single step and other buttons ....

2) A solution similar to yours, I think is reasonable too. But I would suggest it to be committed as an installable package, for those who need it. - I do think such a package could be committed to the Lazarus svn and be distributed with Lazarus by default. But of course it can also go to CCR...

Launching the app into background (and then just forget about it), can have unexpected side-effects, that may confuse other users. - Such as, if the app still runs, at least on windows compilation will fail, because the exe is locked - Not even the stop button would work (couldn't because if many are launched, which one to stop) Though of course it was possible to add comfort functions and keep track of them

In that aspect your patch has a problem, even if done as package. It attempts to compile the app first (if changed). So if one instance is launched, then any change is made, launching another instance is impossible, as compilation fails due to the locked exe (may work on none windows)

3)
Actually a 3rd solution would be possible, where the IDE would have a debug-window listing all launched instances. Then one could attach/detach the debugger to any of them. That would be pretty cool, but is far more than a what your patch attempts to do. (And it is my opinion only, I do not know if the other developers would think of such a solution as proper) It would have to be very carefully be considered how such a function should work (and maybe even than it was better an external package). And also I can see quite a few problems that would have to be solved to do this....

--------------
In any case, do you indent to make further change, like implementing it as external package (considering the issue with compiling before exec, and locked exe)? Or do you have any other idea, you wish to discuss, ad of which you hope it may help to solve this?

Best Regards
Martin

[1] should that not currently behave as described, then it may have to be fixed




--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to