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 :

Super Breakpoint: Break quand une valeur est atteinte


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Super Breakpoint: Break quand une valeur est atteinte
    Bonjour à tous,
    comme beaucoup, je passe pas mal de temps sur le debugger VS C++. J'ai pensé à quelque chose pour essayer de simplifier cette tâche.
    Supposons que j'ai une valeur, par exemple 2.8651 qui est calculée quelque part. Je ne sais pas où et je ne sais pas quelle variable se voit attribuer cette valeur ni à quel moment.
    Je me demandais donc si il était possible de créer un super breakpoint qui stopperait l’exécution du code quand l'une des variables locales se verrait attribuer la valeur 2.8651. C'est sûr qu'avec un peu de temps, je pourrais savoir quelle variable se voit attribuer cette valeur. Mais je suis sûr qu'avec un tel outil, ce serait bien plus rapide. J'ai pensé à faire une macro VBA qui ferait une boucle sur toutes les variables locales à chaque ligne d’exécution et s'arrêterait lorsqu'une de ces variables prendrait la valeur 2.8651 mais je ne suis pas très familier du VBA pour VStudio et je ne sais pas si c'est possible.

    Merci beaucoup!

  2. #2
    Membre averti Avatar de MacPro
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Points : 344
    Points
    344
    Par défaut
    salut,

    je sais pas quelle version de visual studio tu utilises mais moi avec la 2008 je peux très bien faire un breakpoint sur changement de valeur d'une variable. JE n'ai pas VS2008 sous la main là mais je te garantis que c'est possible. Par contre, sur une valeur particulière de cette variable alors là je sais pas trop.

    Peut-être dans Debug / New Breakpoint / New Data Breakpoint et tu mets &taVariable pour ce qui est de l'adresse.


    doc chez M$
    Lorsque vous avez trouvé solution à votre problème, n'oubliez pas de cliquer en bas de la page
    Besoin d'un photographe de mariage : http://www.triangle-photo.fr

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Salut,
    merci de ta réponse!
    En fait, j'ai VS2005. J'ai bien un data breakpoint mais celui ci m'impose de surveiller une variable particulière. Moi, je ne veux pas guetter une variable particulière mais l'apparition d'une valeur particulière, peu m'importe le nom de la variable qui est affectée de la valeur.
    Du coup, je ne crois pas que ça corresponde à mon besoin.
    Encore merci en tout cas

  4. #4
    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
    Points : 3 156
    Points
    3 156
    Par défaut
    Citation Envoyé par amazine Voir le message
    Moi, je ne veux pas guetter une variable particulière mais l'apparition d'une valeur particulière, peu m'importe le nom de la variable qui est affectée de la valeur.
    Mais ça doit être horrible à débugger, ça voudrait dire qu'il doit à chaque instruction faire un parcours de la liste de toutes les variables présentes en mémoire ? Il devrait en plus filtrer les variables par type, taille du type ? A moins que ton code soit très simple, c'est pas top du tout. Je doute que VS fournisse un truc pareil.
    Find me on github

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Ah, ça, je confirme que ce serait un peu une usine à gaz.
    Mais force est de constater que beaucoup de personnes font ce genre de tâches quasi mécanique assez fréquemment.
    C'est vrai qu'avec un peu d'expérience sur une grosse librairie on va plus vite mais dans certains cas, ce serait bien pratique.
    Dans mon cas, j'ai une librairie vieille de 15 ans.
    Des tableaux dans tous les sens et une valeur problématique dans un des 40 tableaux qui apparaissent. Bref, c'est long à débugger.
    Au lieu de boucler sur toutes les variables en mémoire, il ne bouclerait que sur les variables qui changent. Il n'y en a pas tant que ça par ligne d’exécution.
    Et puis, ce que ferait ce superbreakpoint, il le ferait surement plus vite que nous qui faisons la même chose.

    Je sais que je suis faignant. Mais mon expérience m'a confirmé que la fainéantise au regard des tâches mécaniques est la qualité première d'un développeur.

  6. #6
    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
    Points : 3 156
    Points
    3 156
    Par défaut
    Citation Envoyé par amazine Voir le message
    Je sais que je suis faignant. Mais mon expérience m'a confirmé que la fainéantise au regard des tâches mécaniques est la qualité première d'un développeur.
    Et tu as raison, et ce à quoi est censé servir un ordinateur, faire le boulot chiant à notre place

    A mon avis, il te faut construire un outil de "dump" de tes données et les analyser après coup. Ou écrire du code adapté à la lib pour tracer le problème.
    Find me on github

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Ah oui, j'avais pas pensé à faire un outil de dump. C'est vrai que ce pourrait être la solution.
    Merci en tout cas!

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 937
    Points
    4 937
    Par défaut
    la fonction void _CrtDbgBreak( void ); (visual studio donc) te permet de placer un break point dans le code, il te suffit de tester l'apparition de ta valeur et de break pointer avec la fonction.

  9. #9
    Membre averti Avatar de MacPro
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Points : 344
    Points
    344
    Par défaut
    Citation Envoyé par stardeath Voir le message
    la fonction void _CrtDbgBreak( void ); (visual studio donc) te permet de placer un break point dans le code, il te suffit de tester l'apparition de ta valeur et de break pointer avec la fonction.
    un nouveau verbe !
    Lorsque vous avez trouvé solution à votre problème, n'oubliez pas de cliquer en bas de la page
    Besoin d'un photographe de mariage : http://www.triangle-photo.fr

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 937
    Points
    4 937
    Par défaut
    Citation Envoyé par MacPro Voir le message
    un nouveau verbe !
    ouais j'étais pas très inspiré pour la traduction de break au moment de l'écriture

    je pense que Interrompre colle pas mal ici

Discussions similaires

  1. plantage quand une valeur est nulle dans une requete
    Par vinze60 dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 29/04/2013, 21h55
  2. Réponses: 24
    Dernier message: 19/07/2011, 01h01
  3. Réponses: 2
    Dernier message: 17/08/2005, 14h40
  4. Réponses: 9
    Dernier message: 08/12/2004, 14h36
  5. Savoir quand une hotkey est relachée
    Par kriterium dans le forum Composants VCL
    Réponses: 2
    Dernier message: 24/07/2004, 14h44

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