r10624 - mpich2/trunk/src/mpi/debugger
Author: gropp Date: 2012-11-19 16:01:02 -0600 (Mon, 19 Nov 2012) New Revision: 10624 Added: mpich2/trunk/src/mpi/debugger/allcommdbg.c Modified: mpich2/trunk/src/mpi/debugger/Makefile.mk Log: Added another test program for debugger interface, in the debugger directory where the other tests live Modified: mpich2/trunk/src/mpi/debugger/Makefile.mk =================================================================== --- mpich2/trunk/src/mpi/debugger/Makefile.mk 2012-11-19 20:02:49 UTC (rev 10623) +++ mpich2/trunk/src/mpi/debugger/Makefile.mk 2012-11-19 22:01:02 UTC (rev 10624) @@ -44,5 +44,8 @@ src/mpi/debugger/qdemo: src/mpi/debugger/qdemo.c $(bindir)/mpicc -o $@ $? +src/mpi/debugger/allcommdbg: src/mpi/debugger/allcommdbg.c + $(bindir)/mpicc -o $@ $? + endif BUILD_DEBUGGER_DLL Added: mpich2/trunk/src/mpi/debugger/allcommdbg.c =================================================================== --- mpich2/trunk/src/mpi/debugger/allcommdbg.c (rev 0) +++ mpich2/trunk/src/mpi/debugger/allcommdbg.c 2012-11-19 22:01:02 UTC (rev 10624) @@ -0,0 +1,39 @@ +#include "mpi.h" +#include <stdio.h> + +/* This definition is almost the same as the MPIR_Comm_list in dbginit, + except a void * is used instead of MPID_Comm * for head; for the use + here, void * is all that is needed */ +typedef struct MPIR_Comm_list { + int sequence_number; /* Used to detect changes in the list */ + void *head; /* Head of the list */ +} MPIR_Comm_list; + +extern MPIR_Comm_list MPIR_All_communicators; + +int main( int argc, char **argv ) +{ + int errs = 0; + MPI_Init( &argc, &argv ); + + printf( "sequence number for communicators is %d\n", MPIR_All_communicators.sequence_number ); + printf( "head pointer is %p\n", MPIR_All_communicators.head ); + + if (MPIR_All_communicators.head == (void *)0) { + printf( "ERROR: The communicator list field has a null head pointer\n" ); + printf( "Either the debugger support is not enabled (--enable-debuginfo)\n\ +or the necessary symbols, including the extern variable\n\ +MPIR_All_communicators, are not properly exported to the main program\n" ); + errs++; + } + + MPI_Finalize( ); + if (errs) { + printf( " Found %d errors\n", errs ); + } + else { + printf( " No Errors\n" ); + } + + return 0; +}
participants (1)
-
gropp@mcs.anl.gov