![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: I have an online application written using DEC C and FMS. I have no problems debugging this application. However, some of the screens in the online application send DEC message queue messages (REQUEST) and wait until it receives a RESPONSE to the messag e it sent. There is a detached process which acts as a message handler. It continuously reads the messages from the queue that my online programs and other batch programs send to, processes it according to the message type and sends a response. Then t he online program can continue and process the data sent in the message response. What I need to do is to be able to debug the detached process, which is the message handling program. I have tried various methods such as trying to attach to the detached process but VMS didn't allow it. Do you have any suggestions on what to do? The Answer is : The OpenVMS Debugger can be run remotely, passing a workstation (WSA0:) device name as part of the detached process startup (/OUTPUT=WSAn:), passing a DECterm (created via a call to the DECw$Term_Port routine or via CREATE/TERMINAL), passing the target device to the debugger via the DBG$* logical names, starting up the detached process from within a (temporary) DCL procedure containing the appropriate SET DISPLAY command, or various other techniques. For example: $ SET DISPLAY/CREATE[/EXECUTIVE]... $ wsa = f$trnln("DECW$DISPLAY") $ RUN image/DETACH/INPUT=NLA0:/OUTPUT='wsa' ... As there is no way to interrupt the detached process via CTRL/C or CTRL/Y, you may want to provide a way for the application to perform a call to lib$signal( SS$_DEBUG ) to invoke the debugger. (Search for "SS$_DEBUG" in the appendix of the debugger manual for details.)
|