Message Queue Debugging

From Mpich
Revision as of 16:01, 20 August 2008 by Goodell (talk | contribs)

Jump to: navigation, search

The capability to dump CH3 and nemesis-newtcp recv/send queues from a debugger was added in r1195. The functions used to do so are:

void MPIDI_CH3U_Dbg_print_recvq(FILE *stream)

This function dumps the state of the CH3 receive queues (both posted and unexpected) to the given stream. A common choice for the stream is stdout or stderr.

void MPID_nem_dbg_print_vc_sendq(FILE *stream, MPIDI_VC_t *vc)

This function dumps the state of the nemesis shared memory and module send queues for a particular VC (virtual connection). This is only implemented for the newtcp module at the moment, although it is simple to add support for other modules as needed.

You can call these functions from a debugger to aid in debugging various problems such as incorrect ordering of MPI_Send's and MPI_Recv's in collective algorithms or user code. These functions are not related to the proper debugger interface that allows you to examine the message queues from totalview and other debuggers.