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++ Discussion :

Debordement de pointer


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    925
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 925
    Par défaut Debordement de pointer
    Bonjour,

    J'ai besoin d'aide ,
    j'aimerais savoir si il existe un moyen de tracker les débordements de pointers.
    Je cherche un composant qui se greffe à un projet afin de déterminer les débordements de pointers.

    Merci beaucoup , car je suis très ennuyer sur un projet qui en plus vaste.
    Merci

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Le plus courant, c'est Valgrind.

    L'autre, c'est de modifier le code pour utiliser des std::unique_ptr.

  3. #3
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    925
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 925
    Par défaut
    Je travaille sous windows avec Visual Studio 2008 et non sur Linux

    Merci comme même.

  4. #4
    Membre chevronné
    Profil pro
    Consultant en technologies
    Inscrit en
    Octobre 2013
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies

    Informations forums :
    Inscription : Octobre 2013
    Messages : 158
    Par défaut
    Sous windows il y a 2-3 autres outils similaire à Valgrind genre Purify
    Après si ton projet le permet essaye de faire la chasse aux pointeurs bruts, c'est du travail mais au final c'est des moins de problèmes

  5. #5
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Par défaut
    Dans ce cas, LittleWhite parle de « Dr. Memory ». (J'ai jamais testé.)

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Exactement, même si je ne l'ai pas testé non plus (faudrait que je le fasse )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    925
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 925
    Par défaut
    Citation Envoyé par Ehonn Voir le message
    Dans ce cas, LittleWhite parle de « Dr. Memory ». (J'ai jamais testé.)
    J'ai tester Dr Memory ,
    Ca à l'air de fonctionner
    et J'ai su l'installer dans le menu tools de visual studio , mais je voudrais que mon projet en debuggage passer en mode "break" dés qu'il y a débordement de pointer constaté par Dr Memory.
    Sinon il signale qu'une seule fois pour chaque ligne de code l'erreur de débordement de pointer.

  8. #8
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 345
    Par défaut
    Citation Envoyé par yann458 Voir le message
    débordement de pointer.
    Juste parce que ça m'horripile de lire ça ...
    Dis plutôt "invalid read/write" ou "corruption de mémoire", parce que ce que tu dis là, ça n'a aucun sens

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    DrMemory est sympa, mais il n'évolue pas beaucoup et est toujours coincé sous 32 bits, c'est dommage.

    Citation Envoyé par yann458 Voir le message
    et J'ai su l'installer dans le menu tools de visual studio , mais je voudrais que mon projet en debuggage passer en mode "break" dés qu'il y a débordement de pointer constaté par Dr Memory.
    Je ne pense pas que ce soit possible avec DrMemory.

    Citation Envoyé par yann458 Voir le message
    Sinon il signale qu'une seule fois pour chaque ligne de code l'erreur de débordement de pointer.
    C'est en général bien suffisant pour trouver les problèmes. Tu peux déjà virer les pointeurs nus à l'endroit signalé par DrMemory en les remplaçant par des unique_ptr ou autre selon le cas et voir ce que ça te donne.

  10. #10
    Membre Expert Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 048
    Par défaut
    Salut!

    Sinon il y a toujours la manière compliqué ( mais cool ) de le faire toi même dans ton code!
    C'est assez complexe mais tu peux forcer ton new à allouer 8 octets de plus que la taille que tu demandes, tu place ton objet 4 octet après le début. Comme ça, tu as 4 octet avant et 4 octet après ton objet.
    Dans chaque octet tu mets un magic number ( http://en.wikipedia.org/wiki/Magic_n...c_debug_values ).

    Chaque allocation coute donc 8 octets de plus.

    A la fin de ton programme, ou quand tu veux en faite... tu peux vérifier les valeurs avant et après. Si ça ne correspond pas à ta magic value bas... tu as une corruption.

    Donc je sais que c'est long, complexe et pas adapté partout mais ça à l'avantage de fonctionner partout...

    Sinon tu as plein d'outils pour ça comme il à été dit

Discussions similaires

  1. Debordement de pile
    Par BigFox dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/06/2004, 10h14
  2. Pointer sur un fichier FILE *
    Par Biou Pink Powa dans le forum C
    Réponses: 3
    Dernier message: 29/01/2004, 14h45
  3. templates et smart pointers
    Par delire8 dans le forum C++
    Réponses: 9
    Dernier message: 10/07/2003, 16h26
  4. Réponses: 5
    Dernier message: 05/07/2003, 11h52
  5. [Pointer]Treeview.Data
    Par rbag dans le forum Composants VCL
    Réponses: 7
    Dernier message: 31/08/2002, 01h44

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