comment savoir d'ou vient les fuites memoires
comment savoir d'ou vient les fuites memoires
Tu utilises MFC ?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
salut,
si tu as les macros suivante en debut de source:
la fuite memoire sera signal�e en debug dans l'onglet debug.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif
avec en prime la ligne de la fuite accessible par double clic.
![]()
Ce qui est affirm� sans preuve peut �tre ni� sans preuve Euclide.
Les conversions num�riques en C,C++,C++/CLI
DLL d'extensions : �criture d'un plug-in de classe
D�marrer avec les MFC 2/2
Cr�ation d'un ActiveX MFC
Int�gration d'une imprimante PDF pour �ditions automatis�es
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
D�marrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Excellent !
Ca marche sur toutes les versions de Visual ?
je deja ces lignes mais je peux pas double cliquer sur toutes
�a fonctionne depuis visual 4.x jusqu'a visual .net 200x
.
![]()
Ce qui est affirm� sans preuve peut �tre ni� sans preuve Euclide.
Les conversions num�riques en C,C++,C++/CLI
DLL d'extensions : �criture d'un plug-in de classe
D�marrer avec les MFC 2/2
Cr�ation d'un ActiveX MFC
Int�gration d'une imprimante PDF pour �ditions automatis�es
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
D�marrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
si tu as les lignes et que tu n'as pas l'info complete c'est que la fuite est dans un source qui n'a pas ces macros.
![]()
Ce qui est affirm� sans preuve peut �tre ni� sans preuve Euclide.
Les conversions num�riques en C,C++,C++/CLI
DLL d'extensions : �criture d'un plug-in de classe
D�marrer avec les MFC 2/2
Cr�ation d'un ActiveX MFC
Int�gration d'une imprimante PDF pour �ditions automatis�es
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
D�marrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
J'imagine qu'il faut faire gaffe aussi � ce que l'effacement des donn�es allou�es avec ces new soit fait dans un source avec ces macros ?
je ne pense pas, le define ne redefinit que le new.Envoy� par Miles
![]()
Ce qui est affirm� sans preuve peut �tre ni� sans preuve Euclide.
Les conversions num�riques en C,C++,C++/CLI
DLL d'extensions : �criture d'un plug-in de classe
D�marrer avec les MFC 2/2
Cr�ation d'un ActiveX MFC
Int�gration d'une imprimante PDF pour �ditions automatis�es
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
D�marrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
On verra bien comment il s'en sort alors, mais c'est �tonnant, la plupart des biblioth�ques qui font �a doivent r��crire et new et delete.
Vive les pointeurs intelligents![]()
Vive les bons programmeurs![]()
Ce qui est affirm� sans preuve peut �tre ni� sans preuve Euclide.
Les conversions num�riques en C,C++,C++/CLI
DLL d'extensions : �criture d'un plug-in de classe
D�marrer avec les MFC 2/2
Cr�ation d'un ActiveX MFC
Int�gration d'une imprimante PDF pour �ditions automatis�es
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
D�marrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
[FLOOD on]
VIVE MOI !
[FLOOD off]
mais comment il fait pour rep�rer les fuites ?
Au passage: Si tu as par malheur des malloc() dans ton programme (ce que tu ne devrais pas avoir puisque c'est un programme C++), rajoute cette d�finition dans les options du pr�processeur:
Cela te permettra d'avoir nom de fichier et num�ro de ligne pour les malloc comme pour les new.
Code : S�lectionner tout - Visualiser dans une fen�tre � part _CRTDBG_MAP_ALLOC
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
je n'est pas de malloc dans mon programme
parcontre j'ai une map dans une de mes classe que je remplis dans le constructeur comme ceci
faut il que je les efface dans mon destructeur ? si oui comment car la je sais pas car l'utilisation des map m'�tais jusque la inconnu mais ma �t� impos� donc j'ai pris ce que j'ai pu sur le net.
Code : S�lectionner tout - Visualiser dans une fen�tre � part s_maMap["OK"] = pOK;
Non, ta map est d�truite � la destructution de l'objet.
Par contre, si la map contient des pointeurs, les objets point�s ne sont pas d�truits, me semble-t-il...
C'est pour cela que les conteneurs de la STL travaillent g�n�ralement par valeur...
Au fait, au sujet du debug de MFC: le define ne red�finit que le new, mais c'est pour ajouter des param�tres (c'est un nouvel operator new qui est appel�)
L'operator delete est r��crit aussi, mais il garde la m�me signature que le delete original, donc pas besoin de define.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Partager