Debug assertion failed
Résolu
rj35
Messages postés
978
Statut
Membre
-
rj35 Messages postés 978 Statut Membre -
rj35 Messages postés 978 Statut Membre -
Bonjour, je crée un jeu en 2D, en c++ avec directx 9.0 sur visual studio express c++. Lorsque je quitte mon jeu, j'ai une erreur Debug assertion failed. En cherchant sur internet, j'ai compris qu'il s'agissait d'un cas typique de débordement de mémoire, voire d'utilisation de pointeur déjà libéré.
Est ce que je peux remonter juste avant le bogue pour connaitre l'origine de celui-ci?
Merci d'avance.
Est ce que je peux remonter juste avant le bogue pour connaitre l'origine de celui-ci?
Merci d'avance.
A voir également:
- Comment enlever debug player
- Adobe flash player - Télécharger - Divers Web & Internet
- Windows media player - Télécharger - Lecture
- Enlever mode sécurisé tv free ✓ - Forum Freebox
- Enlever pub youtube - Accueil - Streaming
- Debug player ✓ - Forum C
4 réponses
Salut.
oui, c'est possible avec le debugueur, a tester en mettant des breakpoint juste avant de quitter et en executant pas à pas après.
oui, c'est possible avec le debugueur, a tester en mettant des breakpoint juste avant de quitter et en executant pas à pas après.
J'ai déjà tenter pas à pas. J'ai cherché sur internet, et le bogue peut survenir bien avant la fermeture du programme, et se manifester lorsque le programme se ferme.
En cherchant dans la pile des appels, j'ai trouvé cette libération. Cependant l'enlever conduit à une fuite mémoire.
Il pourrait s'agir d'une double libération de plusieurs éléments. Je vais encore chercher, même si je ne sais pas où cette double libération se situe précisément.
En cherchant dans la pile des appels, j'ai trouvé cette libération. Cependant l'enlever conduit à une fuite mémoire.
Il pourrait s'agir d'une double libération de plusieurs éléments. Je vais encore chercher, même si je ne sais pas où cette double libération se situe précisément.
C'est très flou, il est difficile de t'aider.
ce problème peux venir de libération depointeurs multiples que tu traite mal, ou alors d'espaces mémoire qui sont pointés plusieurs fois.
Valgrind pourrait t'aider, mais je ne sais pas s'il fonctionne sur Windows.
ce problème peux venir de libération depointeurs multiples que tu traite mal, ou alors d'espaces mémoire qui sont pointés plusieurs fois.
Valgrind pourrait t'aider, mais je ne sais pas s'il fonctionne sur Windows.
J'ai pas mal cherché, j'ai mis un peu partout des if, pour vérifier que je ne dépassais pas la mémoire allouée aux tableaux (je sais c'est pas très pro, mais ça marche). Finalement, j'ai repéré un dépassement tableau qui n'était pas très explicite.
Le comportement de la gestion des erreurs est assez étrange. Lorsque je dépasse seulement d'une seule case un tableau, j'ai une debug assertation, mais quand je dépasse de 2 cases, j'ai un dépassement tableau.
Merci pour ton aide.
Le comportement de la gestion des erreurs est assez étrange. Lorsque je dépasse seulement d'une seule case un tableau, j'ai une debug assertation, mais quand je dépasse de 2 cases, j'ai un dépassement tableau.
Merci pour ton aide.