2011-11-15 5 views
0

J'ai une erreur de segmentation dans mon application multithread qui devient un mal de tête. Il semble que le problème soit généré dans un appel usleep. J'ai essayé de le remplacer par nanosleep mais il persiste. Il apparaît également près d'un appel sem_timedwait.Erreur de segmentation dans une application multithread

Je compile avec l'option gcc et -lpthread.

Est-ce que cela pourrait être la cause de l'erreur de segmentation? Quelle pourrait être la raison?

+2

Plus probable que la racine de l'erreur de segmentation est une erreur dans votre code. Jusqu'à ce que vous montriez votre code, il est impossible de dire ce qui ne va pas. –

+0

Cette question ne correspond pas vraiment au format de question/réponse SO. Essayez de trouver une question plus spécifique. – mydogisbox

+0

Si vous voulez de l'aide pour le débogage de votre code, vous devez envoyer un exemple MINIMAL COMPLETE. Il doit être petit afin qu'il s'insère dans un poste, mais doit également être complet, montrant tout le nécessaire pour reproduire le problème. Sans cela, vous n'obtiendrez aucune aide utile. –

Répondre

3

Erreur de segmentation signifie que vous accédez à de la mémoire dont vous n'avez pas les droits. Il est généralement dû à une erreur de limite sur un tableau ou un pointeur périmé, par ex. accès après libre. Appeler le sommeil semble extrêmement peu susceptible d'être lié à ceci à moins que vous employiez le sommeil comme outil de synchronisation! Vous pouvez utiliser valgrind pour localiser votre erreur.