Author:halw
Date:2011-05-20T16:21:01.000000Z


git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@906 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
halw
2011-05-20 16:21:01 +00:00
parent 55e8ca0dd2
commit 053e91e2bd

View File

@@ -1,29 +1,31 @@
[[Property:title|Attach application]]
[[Property:link_title|]]
[[Property:weight|0]]
[[Property:uuid|d5b8d2b3-9489-a631-81ee-f25d6c309215]]
[[Property:uuid|e369df0f-2e1f-5730-ae67-cd7b60b55c5f]]
Usually when you want to debug an application, you launch it from EiffelStudio and the debugger is automatically attached to the execution of the application.
However for specific needs (such as server development), you might want to start the execution outside EiffelStudio, and then attach the EiffelStudio's debugger to it.
However for specific needs (such as server development), you might want to start the execution outside EiffelStudio, and then attach EiffelStudio's debugger to it.
Since 6.8, there is an experimental solution based on socket connection.
You start your application, and this one will wait for the debugger to connect.
Beginning with EiffelStudio version 6.8, there is an experimental solution based on socket connection.
After you start the execution of your application, it will wait for the debugger to connect.
There are some obvious requirements such as
* The application should be a workbench application
* EiffelStudio should be open on the project which was used to compile the workbench.
* The application should be compiled in workbench mode.
* EiffelStudio should be open on the project which was used to compile the application.
So how to achieve that?
* On the application side, you will need to provide at some time a port number, and when the application will wait for the debugger.
So how do you make it work?
* On the application side, at some point you will need to provide a port number, and at what point the application will wait for the debugger.
On the application side, you can do that either
* by setting '''ISE_DBG_PORTNUM''' environment variable to a specific port number (by default 1050)
You can do that either:
* by setting <code>ISE_DBG_PORTNUM</code> environment variable to a specific port number (by default 1050), or
* by calling <eiffel>{RT_DEBUGGER}.rt_workbench_wait_for_debugger (a_port_number: INTEGER)</eiffel> from the program itself
Then from EiffelStudio, menu "Execution>Attach Debuggee" and provide the same port number.
Then from EiffelStudio, follow the menu path <code>Execution->Attach Debuggee</code> and provide the same port number.
(note that you can add the associated command to the execution tool bar).
At this point EiffelStudio is able to debug the application as if it was launched by Eiffel Studio itself.
{{note| This solution is still experimental, it can (and will) be improved in the future}}
At this point EiffelStudio is able to debug the application just as if the application had been launched by EiffelStudio.
{{note| As of EiffelStudio version 6.8, this solution is still experimental. It can be expected to improve in the future.}}