Difference between revisions of "Message Queue Debugging"

From Mpich
Jump to: navigation, search
Line 14: Line 14:
  
 
You can call these functions from a debugger to aid in debugging various problems such as incorrect ordering of <code>MPI_Send</code>'s and <code>MPI_Recv</code>'s in collective algorithms or user code.  These functions are not related to the [[Debugger_Message_Queue_Access|proper debugger interface]] that allows you to examine the message queues from totalview and other debuggers.
 
You can call these functions from a debugger to aid in debugging various problems such as incorrect ordering of <code>MPI_Send</code>'s and <code>MPI_Recv</code>'s in collective algorithms or user code.  These functions are not related to the [[Debugger_Message_Queue_Access|proper debugger interface]] that allows you to examine the message queues from totalview and other debuggers.
 +
 +
[[Category:Design Documents]]
  
 
<!-- vim: set ft=wikipedia : -->
 
<!-- vim: set ft=wikipedia : -->

Revision as of 16:10, 20 August 2008

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.

void MPID_nem_dbg_print_all_sendq(FILE *stream)

This is a convenience function that basically just calls _print_vc_sendq for all known VCs in all known PGs (process groups).

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.