Special Segments

The COM Library system .DLLs have code in specially named segments (sections in COFF terminology) to aid debuggers. The remoting code in the COM interface proxy and interface stub .DLLs and other appropriate parts of the runtime are put in segments whose name begins with ".orpc."24. These segments are henceforth referred to as .orpc segments. A transition of the instruction pointer from a non-.orpc segment to an .orpc segment indicates that the program control is entering the RPC layer. On the client side such a transition implies that a RPC call is about to happen.25. On the server side if a function is returning back to an .orpc segment it implies that the call is going to return back to the client side. Application writers who write their own remoting code can also avail [themselves] of this feature by putting their remoting-specific code in an .orpc segment.

Debuggers can use this naming convention, regarding which code lies in COM RPC, to aid in their user interface as to what code they choose to show the user and what code they do not. When the debugger reaches the code address after handling the DebugOrpcServerNotify() exception, it should check if it is still in an .orpc segment. This implies that the instruction pointer is still in code that to the programmer is part of the local-remote transparency magic provided by COM, and so should be skipped by the debugger.

Similar behavior on the client side after the DebugOrpcClientNotify() exception is also desirable.