Je débogue une application C ++ multithread (native) sous Visual Studio 2008. À des occasions apparemment aléatoires, j'obtiens une erreur "Windows a déclenché un point d'arrêt ..." avec une note indiquant que cela pourrait être dû à une corruption dans le tas. Ces erreurs ne planteront pas toujours l'application immédiatement, même si elles risquent de se bloquer peu de temps après.
Le gros problème avec ces erreurs est qu'elles n'apparaissent qu'après la corruption, ce qui les rend très difficiles à suivre et à déboguer, en particulier sur une application multithread.
Quel genre de choses peuvent causer ces erreurs?
Comment les déboguer?
Astuces, outils, méthodes, éclairages ... sont les bienvenus.