Quels outils ou stratégies libres peuvent aider à déboguer un bug de corruption multi-threading?

StackOverflow https://stackoverflow.com/questions/2741634

  •  02-10-2019
  •  | 
  •  

Question

J'ai une application client-serveur multi-thread. Le côté serveur échoue avec un std :: liste se corrompt pour résultat une SEGV. Je pense qu'il ya une sorte de problème de synchronisation de fil croix passe où les deux fils sont à jour le std :: liste en même temps et en l'amenant à être corrompu.

S'il vous plaît proposer des outils gratuits pour suivre ce bas ou des stratégies qui pourraient être utiles.

Était-ce utile?

La solution

Si vous connaissez la structure de données partagée qui est corrompu en raison d'un accès simultané, puis mettre un Mutex sur la structure de données de sorte qu'un seul thread peut accéder à un moment, puis essayez à nouveau.

Vous devez vous assurer qu'aucune donnée ne partage peut être mis à jour par threads simultanés. Il est OK pour plusieurs threads à lire, vous avez besoin de faire attention de plusieurs threads de lecture et un ou plusieurs écriture.

Pouvez-vous indiquer quel système d'exploitation que vous utilisez et quel compilateur?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top