Files
eiffel-org/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/attach-application.wiki
pgummer 3a3a07b8c9 Fix typo.
Author:Peter Gummer
Date:2011-05-21T01:16:38.000000Z


git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@908 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
2011-05-21 01:16:38 +00:00

32 lines
1.7 KiB
Plaintext

[[Property:title|Attach application]]
[[Property:link_title|]]
[[Property:weight|0]]
[[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 EiffelStudio's debugger to it.
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 compiled in workbench mode.
* EiffelStudio should be open on the project which was used to compile the application.
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.
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, 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 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.}}