IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

CODE GUARD et gestion m�moire


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Inscrit en
    Ao�t 2005
    Messages
    136
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2005
    Messages : 136
    Par d�faut CODE GUARD et gestion m�moire
    Bonjour,

    Je suis en train de passer mon appli (exe) en activex (objet COM/OLE je crois).
    En fait, en codant la chose, je me suis apercu que j'avais de jolie fuite m�moire...
    le code fait environ 50 000 lignes, j'ai pas tout ecrit, et il reste que moi pour maintenir et faire �voluer le soft.

    Pour l'instant, je rame avec des points d'arrets, et Process Explorer ( un ctrl_alt_supp am�lior�) pour trouver les fuites m�moires.

    je voulais savoir si code guard pourrait m'aider dans cette recherche, ou si un petit analyser de code pouvait remplir mieux ce genre de fonction?

    Merci d'avance
    ps: je suis sous BCB6 et j'ai jamais reussi � utiliser code guard...

  2. #2
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Responsable de compte
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par d�faut
    CodeGuard g�n�re des fichiers de type cgl indiquant les routines d'allocations m�moires, le mombre de fois qu'elles ont �t� lanc�es ,ainsi que lors de la terminaison du programme les �ventuels leaks
    cordialement
    vous trouverez mes tutoriels � l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les r�gles du forum

  3. #3
    Membre confirm�
    Inscrit en
    Ao�t 2005
    Messages
    136
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2005
    Messages : 136
    Par d�faut
    Bonjour,

    en fait, j'ai reussi a configurer code guard, mais il fait planter mon prog!

    en fait, j'utilise une focntion trouv� sur les FAQ (http://c.developpez.com/faq/vc/?page...ns#ConvertBstr) et code guard me dit qu'il y a une fuite m�moire, et je la comprend pas!
    il est pas content quand on vas ecrire le '\0' a la fin.

    et plus tard, il me fait perdre un pointeur sur un objet, et mon projet plante. Sans codeguard, ca marche...

    il ajoute des balises dans la m�moire???? il fait quoi pour changer le comportement?

    ps:je suis en train de mettre a jours BCB6...

  4. #4
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Responsable de compte
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par d�faut
    bonjour
    c'est parfaitement normal que Codeguard ne soit pas content
    en effet le code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    strRet[length] = '\0';
    �crit dans une zone non allou�e de la m�moire (le fameux caract�re de fin)
    code d'allocation du buffer de sortie
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
     strRet = new char[length];
    le code correct de cette fonction est donc le suivant
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void BSTRtoASC (BSTR str, char *&strRet)
    {
        if ( str != NULL )
       {
           unsigned long length = WideCharToMultiByte (CP_ACP, 0, str, SysStringLen(str),
                                                NULL, 0, NULL, NULL);
           strRet = new char[length+1];// on alloue un caractère de plus pour le '\0'
           WideCharToMultiByte (CP_ACP, 0, str, SysStringLen(str),
                               reinterpret_cast <char *>(strRet), length, NULL, NULL);
            strRet[length] = '\0';
        }
    }
    par ailleurs la fonction appelante doit s'assurer de lib�rer la m�moire pour le str(SysFreeString), ainsi que pour le pointeur pass� en r�f�rence(delete []xxx)

    cordialement
    vous trouverez mes tutoriels � l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les r�gles du forum

  5. #5
    Membre confirm�
    Inscrit en
    Ao�t 2005
    Messages
    136
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2005
    Messages : 136
    Par d�faut
    J'ai honte...

    en fait, j'avais fait une modif et celle la... apres un dur plantage borland ben je l'avais paum� et j'avais pas vu...

    donc, je vais corriger tout ca...

    J'ai mis a jours bcb 6 et j'ai plus le bug de code guard.

    Merci pour l'aide.

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    59
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 59
    Par d�faut
    utilises memproof
    c'est beaucoup mieux que codeguard

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 44
    Dernier message: 02/08/2006, 16h12
  2. TAO, Value types et gestion m�moire
    Par TiChabin972 dans le forum CORBA
    R�ponses: 1
    Dernier message: 25/04/2006, 20h55
  3. [D7] Tableau dynamique et Gestion m�moire
    Par Cl@udius dans le forum Langage
    R�ponses: 7
    Dernier message: 13/03/2006, 15h16
  4. [Gestion m�moire] SetLength sur TDoubleDynArray
    Par MD Software dans le forum Langage
    R�ponses: 14
    Dernier message: 24/04/2005, 21h11
  5. Gestion m�moire des Meshes (LPD3DXMESH)
    Par [Hideki] dans le forum DirectX
    R�ponses: 1
    Dernier message: 08/07/2003, 20h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo