J'ai un programme qui tourne et envoie des sorties de contrôle vers stdout; elles ne s'affichent qu'avec un certain retard par rapport au point d'exécution auquel en est réellement le programme.
Mais j'ai l'impression que si une erreur intervient, elle est signalée immédiatement, sans attendre que les sorties déjà générées mais pas encore affichées ne le soient. Ce qui fait me semble-t'il, que la segfault signalée se retrouve à l'écran au beau milieu de sorties parfaitement normales générées préalablement, et qui étaient en train d'arriver à l'affichage au moment ou s'est produit la segfault.
Est-ce réaliste comme comportement ?
Y aurait il un moyen de synchroniser l'affichage normal et l'affichage des problèmes.
Je m'aperçois en écrivant ceci, qu'on pourrait imaginer que ça voudrait dire que stdout est bufferisé alors que stderr est direct.
Comment puis je faire pour trouver ma segfault (j'utilise déjà gdb, qui me dit à quelle ligne ça plante, mais ce message est affiché au milieu de sorties normales)
Merci,
David
Partager