In remote debugging, the Debugger runs in such a way that it has direct access to the ABL code in an AppServer session, by-passing any client code completely. Remote debugging is the only debugging mode that you can use to debug remote procedures that are:
Executed by an Open Client (non-ABL) or Web service client application
Executed asynchronously in an ABL client application
This mode restricts your debugging activities to debugging only AppServer configurations and remote application procedures; you cannot debug any procedure in the client application session. It allows you to debug application code running on an AppServer agent independently of the calling client application.
For example, an engineer who has developed a set of AppServer procedures does not have to examine the client code that his AppServer code will eventually support. When he is ready to debug his work, he only needs to examine his own code. In this situation, remote debugging is the ideal choice. When he debugs his code using this mode, he sees only his code on the AppServer agent.
In this debugging mode, the client application driving the AppServer agent is unaware that the Debugger process is running on the AppServer agent. That is, the procedure call stack only reveals entries up to the top level remote procedure call. It does not reveal anything about the client application.
If the AppServer agent where the engineer has developed his code calls remote procedures on other AppServer agents, he can debug these other remote procedures using distributed debugging, as a client of the other AppServer (see Distributeddebugging).
You can also use the Debug perspective in Progress Developer Studio for OpenEdge to debug the code running on an AppServer invoked by the client application. You do so by attaching the Debug perspective to the AppServer through a host name and port number. For more information, see the Progress Developer Studio for OpenEdge online help.