J'ai un problème de type "Schroedinger's Cat" ici - mon programme (en fait la suite de tests de mon programme, mais un programme néanmoins) plante, mais uniquement lorsqu'il est construit en mode release, et uniquement lorsqu'il est lancé à partir de la ligne de commande . Grâce au débogage de l'homme des cavernes (c'est-à-dire, des messages printf () désagréables partout), j'ai déterminé la méthode de test où le code se bloque, bien que malheureusement le crash réel semble se produire dans un destructeur, puisque les derniers messages de trace que je vois sont dans d'autres destructeurs qui s'exécutent proprement.
Lorsque j'essaye d'exécuter ce programme dans Visual Studio, il ne plante pas. Il en va de même lors du lancement à partir de WinDbg.exe. Le plantage se produit uniquement lors du lancement à partir de la ligne de commande. Cela se produit sous Windows Vista, btw, et malheureusement je n'ai pas accès à une machine XP pour le moment pour tester.
Ce serait vraiment bien si je pouvais demander à Windows d'imprimer une trace de pile, ou quelque chose d' autre que de simplement terminer le programme comme s'il s'était terminé proprement. Quelqu'un a-t-il des conseils sur la façon dont je pourrais obtenir des informations plus significatives ici et, espérons-le, corriger ce bogue?
Edit: Le problème était en effet causé par un tableau hors limites, que je décris plus en détail dans cet article . Merci à tous pour votre aide à trouver ce problème!