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++Builder Discussion :

[C++ Builder 6]Affichage de la fenêtre CPU sans message d'erreur


Sujet :

C++Builder

  1. #1
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut [C++ Builder 6]Affichage de la fenêtre CPU sans message d'erreur
    Bonjour,

    J'ai un problème assez bizarre...
    Lorsque j'exécute mon programme, j'ai la fenêtre CPU qui s'affiche toujours sur la même ligne (code assembleur: ret) alors qu'aucun message d'erreur n'apparait.
    Le problème c'est que je ne sais pas quel est le code qui provoque ceci car en faisant du pas à pas approfondi, j'ai remarqué que la fenêtre CPU apparaissait à la fin d'une fonction....
    Donc je ne peux pas poster de code étant donné que le curseur lors du débogage ne pointe pas vers la ligne en cause...

    Désolé pour cette explication bancale mais j'ai vraiment du mal à cerner le problème...Si quelqu'un aurait une piste pour m'éclairer, ce serait vraiment génial.

    Merci d'avance.

  2. #2
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Salut,
    et avec la pile d'appelle, tu n'arrive pas a trouver la dernière ligne exécuté ?

    sinon ça peut-être que tu accède à une adresse qui ne t'appartient pas avec un pointeur et que tu fout en l'air la mémoire à cet endroit et plus tard, ça fait planter l'application car il ne retrouve pas les bonnes informations
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  3. #3
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut
    Merci pottiez...Je connaissais pas la pile d'appel

    La pile d'appel pointe sur une dll : ntdll.dll
    Je ne sais pas du tout ce qui utilise cette dll...Le plus étrange c'est que ça ne montre pas de message d'erreur...

  4. #4
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut
    Après plusieurs test, le problème semblerait venir de ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    AnsiString log,pass;
    TiXmlDocument doc;
    doc.Parse(result.c_str());
    TiXmlHandle hdl(&doc);
    TiXmlElement *elem = new TiXmlElement("RESULT");
    elem = hdl.FirstChild("RESULT").FirstChild("GRP").ToElement();
    if(elem)
    {
    	TiXmlElement *field = new TiXmlElement("FLD");
            field = elem->FirstChildElement("FLD");
    	if(field)
                    	log = field->GetText();
            elem = elem->NextSiblingElement();
            if(elem)
                  	field = elem->FirstChildElement("FLD");
            if(field)
                  	pass = field->GetText();
    }
    J'ai pourtant presque fait un copier coller de la doc de TinyXml...Quelqu'un peut m'aider?

    Merci!

  5. #5
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Salut,
    déjà je remarque un truc, c'est que tu créé des nœuds que tu n'associe a rien (new) et dont tu écrase les adresse juste après en récupérant un nœuds existant dans le XML que tu vient de charger.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    AnsiString log,pass;
    TiXmlDocument doc;
    doc.Parse(result.c_str());
    TiXmlHandle hdl(&doc);
    TiXmlElement *elem = NULL;
    elem = hdl.FirstChild("RESULT").FirstChild("GRP").ToElement();
    if(elem)
    {
       TiXmlElement *field = NULL;
      field = elem->FirstChildElement("FLD");
      if(field)
        log = field->GetText();
      elem = elem->NextSiblingElement();
      if(elem)
        field = elem->FirstChildElement("FLD");
      if(field)
        pass = field->GetText();
    }
    Par contre, ce n'est pas forcement la cause de ton erreur
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  6. #6
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut
    Merci pottiez.

    En effet j'ai modifié mais ce n'est pas la cause de l'erreur.

  7. #7
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Je viens de remarquer un manque d'accolade dans ton code, ce qui pourrait provoquer l'erreur, si tu n'as pas un elem, tu ne met rien dans field, et cela peut provoquer une erreur si tu fait de chose juste après, ce qui est le cas ici.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    AnsiString log,pass;
    TiXmlDocument doc;
    doc.Parse(result.c_str());
    TiXmlHandle hdl(&doc);
    TiXmlElement *elem = NULL;
    elem = hdl.FirstChild("RESULT").FirstChild("GRP").ToElement();
    if(elem)
    {
      TiXmlElement *field = NULL;
      field = elem->FirstChildElement("FLD");
      if(field)
        log = field->GetText();
      elem = elem->NextSiblingElement();
      if(elem)
      {
        field = elem->FirstChildElement("FLD");
        if(field)
          pass = field->GetText();
      }
    }
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  8. #8
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut
    En effet bien vu, mais ce n'est pas la cause de l'erreur....

    Mais en fait ce code ne génère l'erreur que certaines fois (et également dans un autre code très similaire à celui-ci...).

  9. #9
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Il faudrait que tu trouve le XML qui est parsé au moment de l'erreur, c'est a mon avis la seul manière dont tu trouvera l'erreur
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  10. #10
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut
    Citation Envoyé par pottiez Voir le message
    Il faudrait que tu trouve le XML qui est parsé au moment de l'erreur, c'est a mon avis la seul manière dont tu trouvera l'erreur
    J'ai ajouté des Savefile qui me permet de visualiser au fur et à mesure le XML et le problème ne vient pas des fichiers puisque sur exactement le même document XML, une fois j'ai l'erreur une autre fois non....
    Je nage en plein brouillard

  11. #11
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Tu pourrait mettre le contenu du xml ici pour voir, peut être qu'il y as un problème dans le code qui ne cherche pas correctement, ce qui peut provoquer des erreurs de pointeur qui ferais cracher l'appli ou non en fonction de l'adresse du pointeur (erreur aléatoire)
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  12. #12
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut
    Voila le contenu du fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?xml version="1.0" encoding="UTF-8" ?>
    <RESULT>
        <GRP>
            <FLD NAME="LOGIN" TYPE="Char">TEST</FLD>
        </GRP>
        <GRP>
            <FLD NAME="PASSE" TYPE="Char">PASS</FLD>
        </GRP>
    </RESULT>
    Mais je penche plus pour un problème de mémoire car le code ne plante jamais lors du premier passage, toujours la deuxième ou troisième fois...

  13. #13
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Désolé,
    la je vois vraiment pas ce qui cloche
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

Discussions similaires

  1. annuler l'affichage d'un etat sans message d'erreur
    Par mnssylvain dans le forum IHM
    Réponses: 4
    Dernier message: 25/11/2007, 21h55
  2. Affichage de la fenêtre de débogage
    Par fredoh dans le forum Contribuez
    Réponses: 8
    Dernier message: 13/03/2006, 10h14
  3. [C#] Problème d'affichage d'une fenêtre (event Load)
    Par PB-W dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/03/2006, 13h48
  4. pb affichage dans une fenêtre
    Par Mat 74 dans le forum Windows
    Réponses: 8
    Dernier message: 27/11/2005, 23h14
  5. Réponses: 7
    Dernier message: 19/08/2005, 09h13

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