bobotetete
Messages postés1Date d'inscriptionlundi 25 juillet 2005StatutMembreDernière intervention31 octobre 2007 31 oct. 2007 à 16:22
Vraiment pratique !!
cs_greg73
Messages postés2Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention17 novembre 2006 17 nov. 2006 à 11:01
c'est parceque t'as pas fait la redefinition du new
#ifndef NDEBUG
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)
int flag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
flag |= _CRTDBG_LEAK_CHECK_DF;
_CrtSetDbgFlag(flag);
#endif
après c'est bon ca t'affiche bien le fichier et le numéro de ligne
bAzilew
Messages postés23Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention23 mars 2007 3 oct. 2006 à 12:46
C:Program FilesMicrosoft Visual StudioMyProjectsExempleexemple.cpp(15) : {46} normal block at 0x00431A90, 10 ->> cette ligne ne s'affiche pas (chez moi), ni numéro de ligne, ni nom de variable.
bAzilew
Messages postés23Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention23 mars 2007 3 oct. 2006 à 12:42
Bonjour :) N'y a t il pa une solution pour afficher qq part le nom de la variable concernée ?
cs_Xs
Messages postés368Date d'inscriptionmercredi 14 novembre 2001StatutMembreDernière intervention 1 septembre 2008 21 nov. 2003 à 20:08
Idem !
Dans ce cas, ce que tu nous montre est génial !
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 21 nov. 2003 à 19:01
oui j'avoue que ca n'était pas forcément évident
cs_GoldenEye
Messages postés527Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 6 octobre 20084 21 nov. 2003 à 18:45
voilà c ça que je voulais savoir !
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 21 nov. 2003 à 17:25
moi je dirais plutot
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)
pour l'exemple que j'ai donné il suffit de regarder les messages dans la fenetre debug (Avec Visual C++ bien entendu)
En l'occurence j'obtiens ca:
Detected memory leaks!
Dumping objects ->
C:Program FilesMicrosoft Visual StudioMyProjectsExempleexemple.cpp(15) : {46} normal block at 0x00431A90, 10 bytes long.
Data: < > CD CD CD CD CD CD CD CD CD CD
Object dump complete.
cs_Xs
Messages postés368Date d'inscriptionmercredi 14 novembre 2001StatutMembreDernière intervention 1 septembre 2008 21 nov. 2003 à 16:28
Tu peux aussi redefinir new avec une macro :
#ifdef __DEBUG
#define new new(__FILE__,__LINE__)
#endif
ou un truc dans le genre.
Sur ta méthode en fait, je ne vois pas trop comment recuperer le nombre de fuite ni ou elles sont !
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 21 nov. 2003 à 14:02
bah en fait ya pas grand chose a expliquer:
int flag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG); // sert a récupérer l'état courant
flag |_CRTDBG_LEAK_CHECK_DF; // signifie que tu veux pouvoir récupérer les fuites (leak fuite)
_CrtSetDbgFlag(flag); // tu fixes le nouveau flag
De toute facon ce n'est pas tres interessant de comprendre comment ca marche, je l'ai mis la parce que je trouve que c'est pratique de l'utiliser
cs_GoldenEye
Messages postés527Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 6 octobre 20084 21 nov. 2003 à 12:34
tu nous expliques un peu comment ça fonctionne ?
merci
31 oct. 2007 à 16:22
17 nov. 2006 à 11:01
#ifndef NDEBUG
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)
int flag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
flag |= _CRTDBG_LEAK_CHECK_DF;
_CrtSetDbgFlag(flag);
#endif
après c'est bon ca t'affiche bien le fichier et le numéro de ligne
3 oct. 2006 à 12:46
3 oct. 2006 à 12:42
21 nov. 2003 à 20:08
Dans ce cas, ce que tu nous montre est génial !
21 nov. 2003 à 19:01
21 nov. 2003 à 18:45
21 nov. 2003 à 17:25
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)
pour l'exemple que j'ai donné il suffit de regarder les messages dans la fenetre debug (Avec Visual C++ bien entendu)
En l'occurence j'obtiens ca:
Detected memory leaks!
Dumping objects ->
C:Program FilesMicrosoft Visual StudioMyProjectsExempleexemple.cpp(15) : {46} normal block at 0x00431A90, 10 bytes long.
Data: < > CD CD CD CD CD CD CD CD CD CD
Object dump complete.
21 nov. 2003 à 16:28
#ifdef __DEBUG
#define new new(__FILE__,__LINE__)
#endif
ou un truc dans le genre.
Sur ta méthode en fait, je ne vois pas trop comment recuperer le nombre de fuite ni ou elles sont !
21 nov. 2003 à 14:02
int flag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG); // sert a récupérer l'état courant
flag |_CRTDBG_LEAK_CHECK_DF; // signifie que tu veux pouvoir récupérer les fuites (leak fuite)
_CrtSetDbgFlag(flag); // tu fixes le nouveau flag
De toute facon ce n'est pas tres interessant de comprendre comment ca marche, je l'ai mis la parce que je trouve que c'est pratique de l'utiliser
21 nov. 2003 à 12:34
merci