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

Langage C++ Discussion :

Pb en release et pas en debug


Sujet :

Langage C++

  1. #1
    Membre confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 80
    Par défaut Pb en release et pas en debug
    Bonjour,

    j'ai un problème auquel google et moi n'arrivons pas à apporter une solution.

    Je travaille sur un très gros projet (3M lignes), qui dans un certain cas particulier plante en release et pas en debug.
    En Release (sans debugger attaché CTRL-F5), j'ai droit à une unhandled win32 exception
    En Release avec debugger (F5) j'ai une Unhandled exception at 0x1733dba8 in myapp.exe: 0xC0000096: Privileged instruction.

    En allant voir l'assembleur dans visual, à la ligne 0x1733dba8, j'ai juste :
    Par contre en debug, je ne peux pas aller voir le code au moment où ça plante en release, parce que pour une raison indeterminée, visual studio me maintient que je n'ai plus de code à cet endroit, alors que les projets concernés sont générés avec informations de DEBUG.

    Au début, je me suis dit que c'était un pointeur non initialisé. Le problème, c'est que je suis sous windows, et que je n'ai pas purify. Donc pour trouver ce vieux pointeur : tintin.

    Si vous avez une idée quelconque pour m'aider, elle sera vraiment la bienvenue!

    thermomille

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

    Et si tu demandes à Visual de s'arrêter en cas d'exception (menu Debug, entrée Exceptions... et tu coches tout sauf C++ exceptions) ?

    MAT.

  3. #3
    Membre confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 80
    Par défaut
    Salut,

    Merci de la bonne idée

    Mais j'ai toujours une unhandled win32 exception en release sans debugger

    et une :
    First-chance exception at 0x118eeaf2 in myApp.exe: 0xC0000005: Access violation reading location 0xffffffff.

    ça ressemble à une pile complètement foutue ça non?

    Mais comment savoir qui a essayé de lire cette adresse?

    Merci beaucoup

    thermomille

  4. #4
    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
    Citation Envoyé par regis.portalez Voir le message
    Mais j'ai toujours une unhandled win32 exception en release sans debugger
    Ok, mais avec débogueur ?

    MAT.

  5. #5
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    Citation Envoyé par regis.portalez Voir le message
    Salut,

    Merci de la bonne idée

    Mais j'ai toujours une unhandled win32 exception en release sans debugger

    et une :
    First-chance exception at 0x118eeaf2 in myApp.exe: 0xC0000005: Access violation reading location 0xffffffff.

    ça ressemble à une pile complètement foutue ça non?

    Mais comment savoir qui a essayé de lire cette adresse?

    Merci beaucoup

    thermomille
    Tu peux essayer de mettre un breakpoint hardware sur la lecture à cette adresse. Je ne sais pas si ça va fonctionner, vu que l'adresse est invalide - mais sait-on jamais.

    Tu trouveras des sources sur le net qui permettent de faire ça, même sans debugger attaché. Cf par exemple ceci.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Une revue de code ? (2M lignes, c'est long, mais je suppose que tu dois pouvoir restreindre un peu ce scope en réfléchissant à ce qui se passe un peu avant l'explosion)
    Des traces pour mieux voir quand le problème arrive ?
    Une version d'évaluation d'un produit genre Intel parallel studio, Purify,... ou autre, ce qui te permettra une fois le problème trouvé d'avoir un bon argument pour pousser tes patrons à l'acheter ?
    Un lock mémoire, non pas seulement sur l'adresse en question, mais partout où tu peux, histoire de voir dès qu'il y a un truc louche (à enlever du code final) ?
    Des poulets noirs à égorger un soir de pleine lune ?
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  7. #7
    Membre confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 80
    Par défaut
    Citation Envoyé par regis.portalez Voir le message
    Salut,

    Merci de la bonne idée

    Mais j'ai toujours une unhandled win32 exception en release sans debugger

    et une :
    First-chance exception at 0x118eeaf2 in myApp.exe: 0xC0000005: Access violation reading location 0xffffffff. [edit] avec debugger

    ça ressemble à une pile complètement foutue ça non?

    Mais comment savoir qui a essayé de lire cette adresse?

    Merci beaucoup

    thermomille
    oulala, j'ai un peu de mal avec l'utilisation du bouton éditer...

    Les poulets noirs me paraissent une bonne idée, qui est surtout plus facile à réaliser qu'avoir une version de purify ou parallel studio

    Qu'est ce qu'un breakpoint hardware?

    Et pour quelles raisons (théoriquement) la pile peut être pourrie à ce point?
    Je ne m'y connais malheureusement pas assez dans ce domaine pour savoir comment orienter mes recherches.
    Comment visualiser la mémoire sans outil à la valgrind? Puis-je le faire à la main?

    Enfin je suis un peu perdu...

    Merci beaucoup à vous tous en tout cas


    [EDIT] : j'ai réussi à avoir parallel studio en eval. Je dois avoir à peu près 200 erreurs mémoire. C'est parti pour la journée Merci beaucoup à tous

  8. #8
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    +1 pour la code review. Generalement, c'est un comportement indefini (le plus courant d'apres mon experience est la variable non initialisee qui prend par hasard une valeur correcte en debug et pas en optimise). Je suis loin d'etre sur que de chercher a remonter les choses a partir du crash en optimise sert (la cause est avant le crash. et il peut y avoir loin du probleme a la consequence).

    La dichotomie (la moitie en release, l'autre en debug. Puis on rafine) peux aider parfois a restreindre le scope. J'ai du aller une fois jusqu'a decouper une fonction... c'etait en fait un bug de l'optimiseur. C'est rare mais c'est possible (et la code review n'aide pas).

    Ajouter des traces aide aussi parfois quand on a une meilleure idee de la cause.

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

Discussions similaires

  1. Acces violation avec la version release, mais pas la debug
    Par Matthieu Brucher dans le forum Qt
    Réponses: 5
    Dernier message: 07/03/2010, 21h20
  2. Réponses: 3
    Dernier message: 29/08/2009, 00h08
  3. Problème d'exécution en release mais pas en debug (2)
    Par animageo dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/11/2007, 14h22
  4. Problème Exécution en Release mais pas en Debug
    Par nono27200 dans le forum VB 6 et antérieur
    Réponses: 67
    Dernier message: 08/11/2007, 16h55
  5. Réponses: 11
    Dernier message: 20/03/2006, 14h42

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