J'écris une application réseau qui communique via un socket TCP Linux. Récemment, j'ai remarqué que l'appel système s'est écrasé sur mon application. Cela fonctionne bien quand les deux pairs sont en place (je suis en train de tester la récupération après un crash). Mais quand un pair est en panne, le second se bloque en exécutant ce morceau de code. La socket est déjà préparée et connectée et a été exécutée plusieurs fois avant que le deuxième homologue ne tombe en panne. Je m'attendais à ce que ce code retourne la valeur -1, mais il produit en sortie seulement "out_tcp 11" puis l'application se termine. Aucun message d'erreur, aucune valeur renvoyée par l'envoi. Je l'exécute sous Valgrind, il dit que l'application se termine normalement - aucun message d'erreur/d'avertissement.Linux TCP crash de socket
Est-ce que quelqu'un a une idée de comment le déboguer? Outils à utiliser? Je suis bloqué avec ça car je ne reçois aucune information.
Merci à l'avance Harnen
utilisez-vous de signalisation? l'avez-vous vérifié avec 'gdb'? –
Valgrind? Ce n'est pas une fuite de mémoire, exécutez-le sous 'gdb'. Vous risquez de quitter SIG_PIPE. –
duplication possible de [Comment empêcher SIGPIPE ou empêcher le serveur de se terminer?] (Http://stackoverflow.com/questions/6821469/how-to-prevent-sigpipe-or-prevent-the-server-from-ending) –