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

Visual C++ Discussion :

[VC++ 2005 express] Debugger en mode release, possible ?


Sujet :

Visual C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2005
    Messages : 15
    Par défaut [VC++ 2005 express] Debugger en mode release, possible ?
    Bonjour,

    Le titre de mon message peut paraître stupide, et pourtant j'ai bel et bien besoin de savoir si il est possible de debugger une application C++ en mode release avec VC++ 2005 express !

    Mon problème est le suivant : j'ai un bug critique dans mon application qui mène au crash à tous les coups. Mais ce bug ne se produit que sous Windows en mode release uniquement ! J'ai passé plusieurs heures sous Windows en mode binaire debug, en exécutant exactement la même séquence d'actions, impossible de reproduire ce bug. De même sous Linux, en debug et release, impossible de le reproduire ...

    J'ai donc exécuté mon application en mode release à travers le debugger de Visual C++, mais évidemment en release il n'y a aucun symbole, tout ce que je peux obtenir c'est une adresse dans une DLL, mais pas de fonction précise, encore moins un numéro de ligne.

    Je cherche donc des conseils, des témoignages, sur ce que vous avez l'habitude de faire dans ce cas très particulier, ou le débugger ne peut pas grand chose. Y'a t'il des options à activer pour en savoir plus, ou des utilitaires qui permette à partir de l'adresse de retrouver le nom de la fonction ?

    Merci d'avance pour tous conseils, suggestions ...

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    voilà une méthode dont je me sers http://cpp.developpez.com/faq/vc/?pa...putDebugString

  3. #3
    Membre expérimenté
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Par défaut
    Bonjour Palmic,

    As tu déjà vérifié qu'en Debug, il n'y a pas de fuite mémoire... c'est souvent la cause de ce genre de problèmes.

    Après le problème peut provenir d'une DLL qui diffère en débug et release. C'est souvent le cas... par exemple, en Debug, control qu'un pointeur est non nul, pas en release.

    Ensuite, il faut identifier la position du problème, avec peut être un retour en arrière (avec suppression du code)... je l'accorde c'est long.

    Enfin (mais là c'est trop tard) il est fortement conseillé de compiler et de tester en release plus régulièrement, cela évite se genre de problème détecté après plusieurs jours de codage intensif. Allez retrouver LA ligne qui ne va pas dans tout ça sans débuggeur !!!

    Bonne chance,

    Jerome

  4. #4
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut
    Salut !
    C'est intéressant ton truc nico-pyright mais le lien ne marche pas et je me demande si sysinternals fut acheté par Microsoft car il y a toujours une redirection !
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    voir ce lien : http://technet.microsoft.com/en-us/s.../bb896647.aspx
    sysinternal a bien été reprise par MS.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2005
    Messages : 15
    Par défaut
    Salut,

    Merci pour les réponses. En fait en cherchant sur des groupes de discussions, j'ai appris que l'on pouvait générer des infos de débogage même en release, cela se configure dans l'IDE au niveau des options du compilateur ET aussi du linker.

    Ceci m'a permis d'avoir directement la ligne causant le crash, évidemment comme prévu il s'agit d'un pointeur NULL, que je check par une macro uniquement en debug, alors qu'en release la ligne suivant essaie d'accéder à un membre et donc boum ...

    Après je vous passe les détails sur le pourquoi du comment ce pointeur peut-être valide en debug, et NULL en release sous Windows, je suis toujours dessus, mon problème était déjà de trouver la fonction et la ligne, ce qui est fait, donc je passe ce sujet en résolu, merci.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/04/2008, 23h52
  2. [VS 2005 Express] Faire du Reporting facile en mode local
    Par FRED.G dans le forum Visual Studio
    Réponses: 3
    Dernier message: 09/11/2006, 15h19
  3. Réponses: 1
    Dernier message: 12/10/2006, 01h34
  4. Réponses: 5
    Dernier message: 21/06/2006, 14h02
  5. bloqué en mode Release
    Par matsch77 dans le forum MFC
    Réponses: 3
    Dernier message: 07/01/2004, 17h17

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