2009-02-17 3 views
1

Je me demande comment déboguer l'erreur suivante:Comment déboguer un « échec d'assertion de débogage » dans VC++ 6

Debug Assertion failure 

Program: tomtoprog.exe 
File: dbgheap.c 
Line: 1044 

Expression:_CrtIsValidHeapPointer(pUserData) 
... 

Je suis calme nouveau pour le développement de fenêtres avec VC++ 6 ... est-il un valgrind ou quelque chose comme ca? Le code tomtoprog n'est pas écrit par moi et c'est plutôt désordonné ... donc quelque chose comme valgrind faciliterait ma vie ...

Merci d'avance!

Meilleures salutations,

Zhengtonic

Répondre

3

Il semble que vous ayez une corruption de tas ou que vous fassiez un double sans le même pointeur. Si vous entrez dans le débogueur, quelle est la dernière ligne de votre code qui est appelée lorsque l'affirmation se produit?

La meilleure façon de vérifier les problèmes comme celui-ci est d'utiliser un vérificateur de tas page comme PageHeap.exe

Voir aussi cette question liée à un débordement de pile

Heap corruption under Win32; how to locate?

2

Hit 'Retry', et ça va briser dans le débogueur. Cela vous donnera la pile d'appels. De là, vous pouvez trouver la partie de votre code qui est en faute. Astuce: vous supprimez/libérez probablement quelque chose deux fois.

Questions connexes