2010-03-15 7 views
0

J'écris un programme MPI C. J'ai des problèmes pour le déboguer, parce que chaque fois que j'utilise fprintf, comme ceci: fprintf (stdout, "worker:% d", worker); si le programme se bloque, en raison d'un blocage de MPI_Recv, je ne vois aucune sortie. Je suis sûr que la ligne de code est atteinte, car je peux mettre une instruction return après l'instruction fprintf, auquel cas le processus termine l'exécution et la sortie est imprimée. Des idées, sur la façon d'imprimer (voir la sortie) même si le processus est bloqué plus tard par Recv? J'espère que cela a du sens.La sortie MPI C fprintf() ne s'affiche pas si le processus se bloque sur MPI_Recv

Répondre

1

Par défaut, stdout est un tampon de ligne, de sorte que vous pouvez mettre fin à votre impression de débogage des appels avec des sauts de ligne:

fprintf(stdout, "workder: %d\n", worker); 

Si vous ne voulez pas un saut de ligne, vous pouvez rincer le même flux:

fprintf(stdout, "workder: %d", worker); 
fflush(stdout); 
Questions connexes