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 :

Methode de debugage : le livre "C++ trucs et astuces pour les nuls"


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 86
    Par défaut Methode de debugage : le livre "C++ trucs et astuces pour les nuls"
    Bonjour,

    J'ai lu le chapitre sur les méthodes de debugages expliquees dans le livre "C++ trucs et astuces pour les nuls"...mais a moins que ce soit moi qui me trompe cela m'a l'air d'embrouiller plus qu'autre chose.

    Qu'en pensez vous? Notamment des methodes de tracages de flux....

    Comment au quotidien procedez vous pour le debugage (sous VC+6).

    D'avance merci pour votre aide.

    Sphere

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Tout le monde n'a pas accès à ce livre.
    Peux tu détailler les méthodes.

    Merci.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    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
    Bonjour,

    Je dirai ma méthode change selon le bug. Sous Visual Studio , j'ai tendance à vérifier les valeurs de mes variables, pour être bien sur qu'elle contiennent ce que j'attends.
    ( Je n'ai pas accès au livre non plus :p )
    Il faut savoir qu'un débuggage commence par un bug, les genres dépendent ( erreur de segmentation, fuite de mémoire , ou comportement imprévu ( "programme ne faisant pas ce qu'il doit" ) )
    Pour les bugs de comportement :
    Lorsque je code, et que j'aperçois le bug, je regarde bien ce qu'il m'affiche ( dépend si c'est du graphique , du texte ... ) et je refléchit, comment ce cas arrive, après je vais placer mes breakpoints pour examiner ce cas

    Les erreurs de segmentation, c'est simple, Visual coupera le programme avant son crash, on remonte la pile d'execution pour voir son propre code, et regarde qu'elle valeur pause problème et hop un breakpoint quelque ligne d'avant pour pouvoir retracer le problème en ayant toute les données.

    Au sinon, un papier et un crayon c'est très bien
    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.

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    ( Je n'ai pas accès au livre non plus :p )

    Je confesse être un fanatique du debugger :
    -> Pour voir l'état de ma/mes variables,
    -> Pour voir le retour des fonctions de bibliothèque (boîte noire) que j'appelle (parfois il y a une distance entre la doc et le comportement observé),
    -> Pour comprendre du code complexe plus rapidement qu'en l'analysant de manière statique,
    -> Avec visual, pour voir comment mes templates sont résolus,
    -> Et bien d'autre cas qui sont tellement évident qu'ils ne me viennent pas à l'esprit.

    J'ai cette démarche quand j'ai un bug ... mais aussi quand j'en ai pas. L'analyse avec une feuille et un crayon doit être la première étape, mais ensuite, comme pour tout théorie, il faut confirmer les prévisions aux observations

    Enfin, le debugger n'est pas le seul outil. Les traces sont aussi des moyens assez puissant pour analyser du code, et en particulier pour en avoir une vue dynamique.

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Salut,

    Depuis que je fais des tests unitaires je ne débogue quasiment plus (un peu de temps en temps dans les cas où "ça plante" mais c'est très rare).
    C'est bien je trouve comme méthode, on gagne beaucoup de temps et on peut se concentrer sur ce qui est utile.

    MAT.

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par Mat007 Voir le message
    Salut,

    Depuis que je fais des tests unitaires je ne débogue quasiment plus (un peu de temps en temps dans les cas où "ça plante" mais c'est très rare).
    Les tests U (comme tous les tests) sont aussi une indispensable pratique pour produire du code fiable. Cela ne m'empêche pas de continuer à utiliser le debugger. J'utilise les testU 'seuls' généralement pour la non régression. Pour les premières validations, je regarde quand même si tout se passe comme j'ai cru l'écrire.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 86
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Enfin, le debugger n'est pas le seul outil. Les traces sont aussi des moyens assez puissant pour analyser du code, et en particulier pour en avoir une vue dynamique.

    Bonjour,

    D'apres le tutoriel de Laurent Gomila (page 22, paragraphe "5.2 - Les points de trace", la possibilité de créer des traces (= tracage de flux) semble prise en compte avec Visual Studio 2008: Merci de bien vouloir confirmer cette conclusion.


    Les codes montrés ci-dessous ( Inclusion du traçage dans les applications et journalisation des applications) n'ont ils donc plus aucun intérêt des lors que l'on utilise Visual Studio 2005 ou 2008?

  8. #8
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par sphere369 Voir le message
    Bonjour,

    D'apres le tutoriel de Laurent Gomila (page 22, paragraphe "5.2 - Les points de trace", la possibilité de créer des traces (= tracage de flux) semble prise en compte avec Visual Studio 2008: Merci de bien vouloir confirmer cette conclusion.


    Les codes montrés ci-dessous ( Inclusion du traçage dans les applications et journalisation des applications) n'ont ils donc plus aucun intérêt des lors que l'on utilise Visual Studio 2005 ou 2008?
    Une réponse de normand se profile face à cette question.

    Dans "un monde parfait", tu as effectué tous les tests possibles et imaginables, et tu es sur à 100% que ton application est absolument exempte de bugs au moment où elle passe en production (comprend: au moment où elle est fournie au "client").

    Tu peux donc envisager de supprimer les taces de ta version "release".

    La journalisation est un peu différente: elle peut "simplement" avoir comme objectif de fournir... un journal d'activité qui peut parfaitement être nécessaire "par ailleurs", ce qui la rend malgré tout de facto indispensable.

    Seulement...

    Si nous vivions dans un monde parfait, tout le monde aurait du travail, il n'y aurait plus ni guerre ni racisme, tout le monde mangerait à sa faim, et j'aurais une charmante personne pour dormir près de moi toutes les nuits

    De plus, il ne faut pas oublier que ton application peut être soumise à des situations dont elle n'est pas personnellement responsable: si tu essaye d'accéder à un fichier verrouillé par une autre application, tu subira de plein fouet une erreur à laquelle ton application est strictement incapable d'apporter une solution correcte

    Tout cela pour dire qu'il faut malgré tout pondérer les expressions comme "je suis sur qu'il n'y a plus la moindre erreur dans mon code" ou "je suis sur d'utiliser la meilleure logique possible"...

    C'est cette pondération qui te permettra soit de réévaluer ton point de vue, soit de considérer que rien n'est jamais acquis, et surtout pas le "0 défauts" (parce que ton application peut subir des défauts qui ne sont pas de son propre chef).

    Et, si tu garde cette indispensable pondération dans ton point de vue, tu te rend compte que ce n'est pas parce qu'un outil particulier te fournit une possibilité qui reste, malgré tout, indispensable y compris une fois que ton application a quitté le stade du développement, que tu peux décider d'abandonner cette possibilité aux bons soins seuls de cet outil
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/08/2009, 12h49
  2. [Avis] livre "programmateur VBA EXCEL " pour les nuls
    Par gangura dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 18/09/2007, 18h14

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