Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1024 connectés 

  FORUM HardWare.fr
  Programmation

  [C++] Gestion des memory leak et ecriture hors-tableau: crtdbg.h????

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Gestion des memory leak et ecriture hors-tableau: crtdbg.h????

n°22088
korben
Posté le 03-04-2001 à 17:52:37  profilanswer
 

Salut
Je sais que Visual C++ 6 (et déjà les versions précédentes), permette de rajouter du code pour controler les mauvaises libérations de mémoire (mémory leak) ou l'écriture/lecture hors-tableau (ex: int tabl[10].... int val=tabl[10] alors que tabl va de 0 à 9)).
J'ai lu qu'il fallait employer la libraire crtdbg. Vous avez de l'expérience là-dedans? HELP HELP HELP. C'est super mal documenté.
@+

mood
Publicité
Posté le 03-04-2001 à 17:52:37  profilanswer
 

n°22090
BENB
100% Lux.
Posté le 03-04-2001 à 17:58:56  profilanswer
 

Korben a écrit a écrit :

Salut
Je sais que Visual C++ 6 (et déjà les versions précédentes), permette de rajouter du code pour controler les mauvaises libérations de mémoire (mémory leak) ou l'écriture/lecture hors-tableau (ex: int tabl[10].... int val=tabl[10] alors que tabl va de 0 à 9)).
J'ai lu qu'il fallait employer la libraire crtdbg. Vous avez de l'expérience là-dedans? HELP HELP HELP. C'est super mal documenté.
@+




remplace ton int tabl[10] par un vector...
il me semble qu'il declanche des execption en cas de debordement

n°22091
Styx0
Aware, abware !
Posté le 03-04-2001 à 18:02:07  profilanswer
 

Pour ma part je cherche les memory leak à partir d'UMDH
(il faut que ton prog génère des symbols lors de la compilation
=> .pdb)
 
=> http://support.microsoft.com/suppo [...] 8/3/43.asp

n°22142
korben
Posté le 04-04-2001 à 00:11:54  profilanswer
 

Benb, j'ai pris un exemple simple. Mais je ne pense pas que lorsque j'emploie un tableau de structure avec des éléments pointant sur un tableau de structure dynamique contenant des pointeurs, je puisse remplacer cela par un vecteur....
Mais pour le cas présenté, peut-être.
Non, ce que je cherche, c'est à comprendre l'utilisation de la libraire crtdbg fournit avec Visual C++ 6 (trouvée grace à MSN)
Ou, à trouver un autre utilitaire gratuit ou en version d'essai pour plus que 15 jour (contrairement à Rational Purify 2001, très bien, mais limité à cette période).
D'avance merci
Styx0, merci, je regarderai cela demain matin.
@+

n°22159
BENB
100% Lux.
Posté le 04-04-2001 à 08:45:53  profilanswer
 

Korben a écrit a écrit :

Benb, j'ai pris un exemple simple. Mais je ne pense pas que lorsque j'emploie un tableau de structure avec des éléments pointant sur un tableau de structure dynamique contenant des pointeurs, je puisse remplacer cela par un vecteur....
Mais pour le cas présenté, peut-être.
Non, ce que je cherche, c'est à comprendre l'utilisation de la libraire crtdbg fournit avec Visual C++ 6 (trouvée grace à MSN)
Ou, à trouver un autre utilitaire gratuit ou en version d'essai pour plus que 15 jour (contrairement à Rational Purify 2001, très bien, mais limité à cette période).
D'avance merci
Styx0, merci, je regarderai cela demain matin.
@+




Je te citais la solution la plus simple... et qui pourrait etre consideree comme une bonne habitude a prendre. Je ne cherche pas la polemique.
 
Quand je travaillais sous Windows (Visual 5.0) j'utilisait BoundChecker, mais il n'est pas livre avec Visual...
 
Bon courage, ces problemes sont toujours embetants.

n°22183
korben
Posté le 04-04-2001 à 09:40:37  profilanswer
 

Et oui. Parce que c'est vraiment pénible.
J'emploie actuellement Rational Purify, qui est très pratique (s'intègre à VC++ 6) Mais il est limité à 15 jours.
J'en entendu parler de crtdbg, disponible déjà avec VC++. Le problème, c'est que je comprends rien. Aucune idée comment l'installer et l'utiliser. C'est vraiment pas clair.
ALors? Qqn connait qqch d'autre ou possède un utilitaire qu'il peut me passer?
D'avance merci
@+

n°22198
gilou
Modérateur
Modzilla
Posté le 04-04-2001 à 09:56:28  profilanswer
 

Les mauvaises liberations memoires, ca se corrige en liberant proprement la memoire, pas en utilisant une toolkit proprietaire et non portable qui intercepte les situations d'arret et les recuperes.
A+,

n°22246
korben
Posté le 04-04-2001 à 11:49:00  profilanswer
 

Gilou, je fais du debugging. Et lorsque tu fais du debugging, tu veux que l'utilitaire t'aide. Je veux donc que cette utilitaire me dise "tu as oublié de libérer de la mémoire" ou "tu lis/écris hors tableau". Pas qu'il le fasse pour moi. Et se dire: je n'ai qu'à programmer correctement dès le début... ce n'est pas une solution, sauf si tu programmes durant tes loisire quelques petites lignes de code...
Tout bon programmeur vérifie son code et pour cela, un outil tel que Purify est très très utile. Mais pour les raisons cités plus haut, je cherche qqch de libre et, donc qqn les ayant déjà utilisé ou sachant comment le faire.
Merci

n°22257
gilou
Modérateur
Modzilla
Posté le 04-04-2001 à 12:18:29  profilanswer
 

Dans ce cas la, ne cherches pas a utiliser crtdbg a moins que tu aies vraiment du temps a perdre pour t'ecrire un programme purify like.
Y'a d'autres outils avec des periodes d'essai Bug Tracker (1 mois, je crois a l'essai), BoundChecker (pas sur qu'il y ait une periode d'essai) et sans doute d'autres. Les deux dont je te parle (et purify) sont assez efficaces.
 
Il doit aussi trainer des librairies de malloc permettant de savoir ce qui n'est pas desalloue, sur le web, dans des articles du DrDobbs, etc.
 
crtdbg, c'est si je ne me trompe pas, une api, comme il y en a des tonnes dans Windows.
Faut que tu regardes les 50 entrees de la MSDN pour avoir une idee de comment on s'en sert, mais c'est pas qque chose de rapide a mon avis, car tres specialise.
A+,

 

[edit]--Message édité par gilou--[/edit]

n°22275
korben
Posté le 04-04-2001 à 13:57:50  profilanswer
 

Non, je n'ai vraiment pas de temps à perdre. Mais c'est pour cela que je demandais si qqn l'avait déja employé. Parce que s'il suffit de faire un include et de copier 8 lignes de codes.. c'est assez facile sinon... basta.
 
Comme tu as l'air pas trop ignorant, tu ne sais pas ou je peux trouvers des libraires de traitement d'image?(ouverture, accès à un pixel déterminé et enregistrement d'image)
D'avance merci
@+
 
P.S: Tu sais s'il y a moyen de.. rallonger la période d'essai (j'en ai besoin pour min. 3 mois)

mood
Publicité
Posté le 04-04-2001 à 13:57:50  profilanswer
 

n°22286
korben
Posté le 04-04-2001 à 14:42:15  profilanswer
 

Salut
Bug Tracker n'est pas du tout un outil de contrôle (debugging) il permet juste de mieux gérer les bugs. Non, ce que je veux, c'est un outil me vérifiant la désallocation et l'accès aux éléments d'un tableau. C'est tout. Purify est parfait mais... 15jours pffff.
@+

n°22292
verdoux
And I'm still waiting
Posté le 04-04-2001 à 15:01:47  profilanswer
 

Korben a écrit a écrit :

 
Comme tu as l'air pas trop ignorant ...




:lol:
Non Gilou n'est pas trop ignorant, il gère quelques millions de lignes de code chez Adobe ...

 

[edit]--Message édité par Verdoux--[/edit]

n°22293
MC
retour à la raison
Posté le 04-04-2001 à 15:12:35  profilanswer
 

Korben a écrit a écrit :

Non, je n'ai vraiment pas de temps à perdre. Mais c'est pour cela que je demandais si qqn l'avait déja employé. Parce que s'il suffit de faire un include et de copier 8 lignes de codes.. c'est assez facile sinon... basta.
 
Comme tu as l'air pas trop ignorant, tu ne sais pas ou je peux trouvers des libraires de traitement d'image?(ouverture, accès à un pixel déterminé et enregistrement d'image)
D'avance merci
@+
 
P.S: Tu sais s'il y a moyen de.. rallonger la période d'essai (j'en ai besoin pour min. 3 mois)




 
Intel a une librairie comme ca, un peu plus évoluée (véritable traitement d'image):
 
http://developer.intel.com/softwar [...] /index.htm
 
 
C'est de l'intel, donc optimisé Intel etc...
 
et en opensource:
 
http://www.intel.com/research/mrl/research/opencv/

 

[edit]--Message édité par MC--[/edit]

n°22361
korben
Posté le 04-04-2001 à 18:05:37  profilanswer
 

Merci MC. Tu as déja employé cela? C'est simple à utiliser ou c'est une vraie mer...? Parce que je crois qu'au niveau traitement c'est génial, mais le chargement et enregistrement des fichiers est inexistant. Et comme je dois avoir un minimum de perte lors du chargement, je ne peux me permettre de faire 40'000 conversion. Gilou, qui d'après certain bosse chez Adobe, tu n'as pas une solution à ce problème? Si vous avez besoin de plus d'info, je me tiens à votre disposition. C'est vraiment un gros projet dont je suis responsable. Alors si vous savez quelle libraire employer pour le traitement d'image et de son...
 
Je suis sinon toujours à la recherche d'une personne sachant employé ce super crtdbg. L'endroit ou je bosse ne désire en effet pas investir dans un logiciel tel que purify sans avoir testé ce qui est proposé avec Visual C++ 6.0 (qu'il paye une fortune)
@+

n°22563
korben
Posté le 05-04-2001 à 13:44:49  profilanswer
 

UP petit UP

n°22727
gilou
Modérateur
Modzilla
Posté le 05-04-2001 à 21:18:54  profilanswer
 

Pour le 1 et 4, c'est typiquement ce que font pas mal de lib commerciales (avec Accusoft par exemple, ce serait grosso modo: Un appel pour creer un objet image par ouverture d'un fichier; un appel pour recuperer les infos de l'image; un appel pour modifier le pixel; un appel pour sauver le fichier (et un appel pour detruire l'objet image quand on ne s'en sert plus)).
Peut pas te dire pour les libs non commerciales. Mais si je me souviens bien, il y avait une lib unix (portee sous win?) assez pratique pour ce genre de chose. Je ne me souviens pas completement de son nom (pbm?).
 
Pour les Wav, j'ai pas d'infos.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C++] Gestion des memory leak et ecriture hors-tableau: crtdbg.h????

 

Sujets relatifs
[PHP] gestion des sessionsC++ Création d'un tableau
[C] une fonction qui renvoie un tableau de 3 doubles ??[Visual C++ 6] Gestion des overflows
[VB6 ]convertir un tableau de byte en tableau d'integerWinSock : envoyer un tableau d'integer, double ... (VB)
[JAVA] Ecriture le caractere '\n' au format windows dans un fichier..[HTML] Alignement dans un tableau
[JAVA] Gestion de la molette ??Comment enregistrer un tableau dans un fichier en C++ ?
Plus de sujets relatifs à : [C++] Gestion des memory leak et ecriture hors-tableau: crtdbg.h????


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR