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 :

Detecter les B.O


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 16
    Par défaut Detecter les B.O
    Bonjour,

    Je rencontre de nombreux problèmes de B.O à cause des tableaux de char, caractères nuls ect...
    Alors, j'aimerai savoir s'il existe des outils pour analyser les sources d'un prog et trouver les erreurs susceptiblent d'engendrer des BO ?

    Tenez, par exemple, en ce moment, mon prog m'affiche en ligne de commande, des trucs du genre " c:/^ù$ù*ù ". Et je passe bêtement des heurs à chercher la chaîne qui n'a pas de '\0' .

    Merci
    ++

  2. #2
    Membre émérite

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Par défaut
    Une solution : programme en C++ . Les classes std::string et autres te permettront de programmer sans te soucier de ça. A nouveau, voir dans la FAQ pour des exemples.

  3. #3
    Membre émérite
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Par défaut
    Si je comprends bien, des B.O. ce sont des BufferOverflow ?

    Effectivement, l'utilisation de std::string est vivement recommandée afin de limiter les problèmes de buffer overflow, de mauvaise allocation, etC...

    En fait, ça a été créé pour éliminer ces soucis là.

  4. #4
    Membre confirmé Avatar de BigNic
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 195
    Par défaut
    sinon il y les classiques memory checker: pof, purify, valgrind, BoundChecker...
    Mais si tu n'as des problèmes que pour des chaines de caractères, il vaut mieux effectivement utiliser std::string.

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    En C++, le fait d'utiliser les containers enlève tout ce genre de problèmes, en plus d'autres.

  6. #6
    Membre émérite
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Par défaut
    rajoute tout de même qu'il faut employer un pointeur intelligent provenant de la boost par exemple, afin d'optimiser les choses et eviter les pertes de mémoire lors de la destruction du container.

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/08/2006, 15h02
  2. Réponses: 1
    Dernier message: 31/07/2006, 13h51
  3. détecter les enregistrements en double (sur un champ)
    Par Phiss dans le forum Langage SQL
    Réponses: 6
    Dernier message: 06/07/2006, 16h59
  4. Réponses: 8
    Dernier message: 03/07/2006, 19h52
  5. Réponses: 3
    Dernier message: 30/06/2006, 14h39

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