Debugging a DIP is similar to debugging other C-language programs.
Look for message queues that have unread messages. This may indicate a stuck process or DIP. Use the ipcs command to display the current status of the message queues.
A semaphore can lock up the system if processes are waiting for its release that never happens. One semaphore is used for each posted process in the BB. Use the ipcs command to display the current status of the semaphores.
Use the bbs command to display the posted processes in the BB.
In mesgsnd, mesgrcv, or dbase, the sender and receiver may be reversed or the DIP may set the mchan value improperly in the return message to TSM. Use the ipcs command to display the current status of the DIP.
If you are trying to run a DIP and the system displays a message similar to:
cannot fork: too many processes
you may need to increase the maximum number of processes that are allowed. See Types of DIPs for details on how to tune your system to handle more processes.
If there is a long pause in a script near a DIP, it usually means that the DIP did not receive a message, it did not return the message, or it did not return the message properly.