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 :

Visual Studio -- EEFileLoadException


Sujet :

C++

  1. #1
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 103
    Points : 224
    Points
    224
    Par défaut Visual Studio -- EEFileLoadException
    Bonjour à tous,

    J'implémente une interface avec un parseur XML dans le cadre d'un stage de fin d'études et, parmi les nombreux blocages que j'ai déjà eus, en voici un qui me donne beaucoup de fil à retordre.

    À la compilation du projet, Visual C++ me susurre les mots doux suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    First-chance exception at 0x7571C42D in vstest.executionengine.x86.exe: Microsoft C++ exception: EEFileLoadException at memory location 0x0571D4A4
    Je ne sais vraiment, mais vraiment pas de quoi il s'agit, et quand je me sers de mon ami Google je ne comprends rien à ce qu'il dit.

    Une petite description du contexte (facultative) tout de même :

    Dans mon entreprise, on dispose d'un optimiseur (un moteur d'optimisation quoi) prenant en entrée des données fournies sous format XML. Cet optimiseur étant codé en C++, on a besoin d'un parseur XML. L'optimiseur fournit une interface pour éviter le couplage avec le parseur XML, et ma mission est d'implémenter la relation entre l'interface et le parseur.

    Dans Visual C++, j'ai déjà créé des liens entre l'interface et le parseur, et testé plusieurs fonctions avec succès. Mon outil de tests unitaires est Google Test (je le mets en gras au cas où le problème viendrait de là).

    Quelqu'un parmi vous serait-il en mesure de me fournir un oracle ou une piste à suivre pour résoudre mon problème ? Je lui en serai très reconnaissant.

    Merci à tous !

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    C'est pas très clair votre truc.
    C'est une "first-chance exception", si elle est catché, il n'y a pas de problème.
    C'est une exception liée à .NET et je ne vous pas de rapport avec votre projet.
    C'est une exception, c'est donc à l'exécution pas à la compilation.

    C'est en passant les tests que vous avez cette exception ?
    Ou en exécutant votre optimiseur ?

    C'est super pas clair.

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Euh, vstest.executionengine.x86.exe, c'est l'outil de test unitaires de Visual Studio, pas celui de Google...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 103
    Points : 224
    Points
    224
    Par défaut
    Citation Envoyé par bacelar Voir le message
    C'est pas très clair votre truc.
    C'est une "first-chance exception", si elle est catché, il n'y a pas de problème.
    C'est une exception liée à .NET et je ne vous pas de rapport avec votre projet.
    C'est une exception, c'est donc à l'exécution pas à la compilation.

    C'est en passant les tests que vous avez cette exception ?
    Ou en exécutant votre optimiseur ?

    C'est super pas clair.
    Bonjour,

    Merci pour vos réponses. Je sais que ce n'est pas clair parce que dans ma tête ce n'est pas très clair non plus ! Je ne sais pas comment catcher une First-chance exception car je ne sais pas de quoi il s'agit.

    En fait vous avez raison ce n'est pas à la compilation mais à l'exécution que ces exceptions apparaissent, mais elles apparaissent avant les premières lignes du main de mon programme - je l'ai constaté en utilisant le debugger de MSVC - mais si je demande au compilateur de continuer sans s'en préoccuper, le programme fonctionne normalement - pour le moment.

    Oui, c'est en passant les tests que je suis confronté à cette exception... Pour l'instant, l'optimiseur est un projet en chantier, que je n'ai pas encore eu l'occasion d'exécuter (en gros, je ne m'en occupe pas pour le moment). Et la remarque de Médinoc soulève un point qui me semble étrange : je sais que j'exécute les librairies de test fournies par Google (références à GTest au sein de mon projet sans laquelle il m'est impossible de compiler, exécution des Google Tests dans le main...) mais en effet, c'est vstest qui pose problème... Y'a-t-il un lien entre Google Tests et VSTest ?

    Merci.

    P.S. : En effet il n'y a pas de lien avec .NET car je n'ai jamais utilisé ce langage, ni dans ce projet, ni ailleurs...

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ce n'est pas une exception .Net, c'est une exception C++.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    "EEFileLoadException" n'est pas une exception .NET mais elle est lancée pour le Runtime .NET.
    Les first-chance ne ce catchent pas, ce n'est pas une exception c'est une phase lors du lancement d'une exception.
    La première phase est quand on cherche une clause catch d'une exception.

    Si le débuggeur s'arrête à ce moment de la vie de l'exception, c'est qu'il a été configuré, à tord ou à raison, pour suspendre le debuguee lors du lancement de ce type d'exception et non au moment où l'exception arrête le programme quand elle n'est pas catchée.

    Le plus probable, c'est que vous ayez, par un moyen ou un autre, ajouté de tests unitaires MS dans votre projet et que votre projet tente de les passer en post-compilation.

    Pouvez-vous recréer le projet pour vérifier mon hypothèse ?

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Note: le debugger logue "first-chance exception" qu'il interrompe l'exécution ou non. Il serait une bonne idée de désactiver l'interruption au lancement d'exception pour voir si celle-ci est gérée ou non.
    Citation Envoyé par bacelar Voir le message
    Le plus probable, c'est que vous ayez, par un moyen ou un autre, ajouté de tests unitaires MS dans votre projet et que votre projet tente de les passer en post-compilation
    Je plussoie.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    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 : 49
    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
    Points : 16 213
    Points
    16 213
    Par défaut
    J'ai eu ce soucis dans un cas semblable, et si le cas est semblable au point d'être identique, en fait, ce n'est pas grave

    Si en plus d'utiliser google tests, tu as installé le plug-in google test runner (intégration des tests unitaires dans l'interface de visual studio), et que tu tentes de lancer les tests en debug depuis cette interface (par en exécutant le programme généré par google tests), tout en ayant activé le fait d'arrêter le programme à la première exception, c'est "normal" d'avoir ce comportement : Il s'agit d'un exception lancée dans la couche d'intégration des tests à l'interface, exception qui est traitée en interne. Je te conseille de l'ignorer, soit en désactivant le fait de s'arrêter sur cette exception précise, soit en l'ignorant manuellement.
    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.

  9. #9
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 103
    Points : 224
    Points
    224
    Par défaut
    Bonjour,

    Merci à tous pour vos réponses qui m'ont beaucoup aidé ! Ces First-Chance Exceptions m'inquiétaient beaucoup, je pensais qu'il existait des fuites de mémoires au niveau de mon projet et, suivant vos conseils, je les ai désactivées dans le panel de gestion des exceptions de Visual C++.

    Par contre, ceci est bien mystérieux car je ne me souviens pas d'avoir intégré des tests unitaires MS dans mon projet, je me suis uniquement servi de la librairie gtest (Google Tests)...

    En tout cas c'est bon à savoir que les First-Chance exceptions ne sont qu'une phase pendant le lancement d'exceptions. Malheureusement, je ne peux pas recréer le projet, cela prendrait trop de temps (cela fait déjà quatre mois que je suis dessus...).

    Encore merci

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Malheureusement, je ne peux pas recréer le projet, cela prendrait trop de temps (cela fait déjà quatre mois que je suis dessus...).
    Vous avez donc un gros problème dans la maitrise de votre projet.
    Vous devez toujours documenter votre processus de création d'environnement pour permettre sa recréation ou sa migration sur une chaine de migration.

    Vérifiez la solution de JolyLoic.

    Si ce n'est pas votre problème, vous pouvez vérifier le contenu de votre projet.
    C'est un fichier texte, au format XML MSBUILD.
    Essayez de voir pourquoi vous lancez tel ou tel outil en regardant les groupements de fichier.
    MSBUILD est un espèce de Makefile.

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

Discussions similaires

  1. News Visual Studio
    Par farscape dans le forum Visual C++
    Réponses: 34
    Dernier message: 27/04/2010, 10h21
  2. [IDE] Visual Studio 2005 Express
    Par Louis-Guillaume Morand dans le forum Général Dotnet
    Réponses: 130
    Dernier message: 23/12/2006, 15h08
  3. Visual Studio .Net et template
    Par Sphax dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 17/07/2004, 16h33
  4. Probleme d'utilisation de directX 9 avec visual studio.net
    Par cranedoeuf dans le forum DirectX
    Réponses: 1
    Dernier message: 24/05/2004, 04h33
  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