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 :

Debug de fonction du .h dans Visual C++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 51
    Par défaut Debug de fonction du .h dans Visual C++
    Bonjour,

    c'est une question toute simple mais qui m'embête énormément depuis un bout de temps...

    J'essaye de comprendre une bibliothèque et il y a une tonne de méthodes définies dans les fichiers .h sur une seule ligne du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double GetTempValue() const { return TempValue; }
    Comment peut-on faire sans changer le code pour accéder en debug a la valeur de cette variable membre. Si on met le pointeur de la souris dessus, rien ne s'affiche car on est pas vraiment dans la fonction, et si je fais Step Into, ben je ressors directement de la fonction.

    Donc pour peu que la fonction qui appelle est du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (GetTempValue())==Val){...}
    je me retrouve sans savoir quelle était la valeur...

    Quelqu'un connait une solution à ça sans à avoir a réécrire les fonctions sur plusieurs lignes??

    Merci !!!

  2. #2
    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
    Salut,

    C'est effectivement un problème, mais ce ne sont de toute évidence que des accesseurs, ce qui fait que tu devrais pouvoir trouver le membre correspondant en regardant le contenu de l'objet courent

    Si tu veux savoir ce que vaut la valeur renvoyée par GetTempValue pour reprendre ton exemple, tu devrais pouvoir aller voir du cote de la valeur du membre TempValue de l'objet sur lequel tu travailles
    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

  3. #3
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 51
    Par défaut
    Merci pour ta reponse, oui je peux effectivement acceder a partir du pointeur This ou de l'instance, mais des fois si il y a 2 ou 3 niveaux de fonctions qui s'appellent comme ca, ca peut devenir tres vite casse-c.... si tu vois ce que je veux dire, ca serait tellement plus simple de pouvoir executer une ligne sans ressortir de la fonction

  4. #4
    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 micamused Voir le message
    Merci pour ta reponse, oui je peux effectivement acceder a partir du pointeur This ou de l'instance, mais des fois si il y a 2 ou 3 niveaux de fonctions qui s'appellent comme ca, ca peut devenir tres vite casse-c.... si tu vois ce que je veux dire, ca serait tellement plus simple de pouvoir executer une ligne sans ressortir de la fonction
    Oui, je comprends d'autant mieux que ce serait plus facile si la fonction était sur plusieurs lignes (et qui ne changerait rien en terme de performance) sous la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    double GetTempValue() const
    { 
        return TempValue; 
    }
    Comme c'est un cas que j'ai aussi déjà rencontré régulièrement, je présume que c'est en fait une restriction au niveau du débuggeur dans le sens où tu ne peux placer un breakpoint que sur une ligne particulière, et non sur une colonne

    Ce n'est en effet pas gai, mais "faut faire avec"
    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

  5. #5
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Tu peux essayer avec les "point d’arrêt de trace" (clic droit sur la fonction > point d'arret > trace), mais les résultats sont quelques peu "surprenant" chez moi
    Images attachées Images attachées  

Discussions similaires

  1. Problème pour le debug dans Visual C++
    Par Asahori79 dans le forum Débuter
    Réponses: 2
    Dernier message: 06/07/2012, 08h29
  2. Réponses: 5
    Dernier message: 08/10/2010, 12h52
  3. Réponses: 2
    Dernier message: 12/06/2008, 16h51
  4. Réponses: 12
    Dernier message: 14/06/2004, 13h06
  5. Version de Windows dans Visual Studio !!!
    Par Jasmine dans le forum MFC
    Réponses: 3
    Dernier message: 18/03/2004, 17h40

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