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

MFC Discussion :

First Chance Exception --> Comment les éviter ?


Sujet :

MFC

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 104
    Par défaut First Chance Exception --> Comment les éviter ?
    Salut à tous, j'ai un programme super instable, qui plante tout le temps en me mettant ces erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    First-chance exception in gui_test.exe (MFC42D.DLL): 0xC0000005: Access Violation.
    First-chance exception in gui_test.exe: 0xC0000005: Access Violation.
    The thread 0x558 has exited with code -1 (0xFFFFFFFF).
    First-chance exception in gui_test.exe (KERNEL32.DLL): 0xC0000005: Access Violation.
    Le programme est multi thread mais je ne comprends pas la signification de ces erreurs , et comment les eviter. merci de m'aider

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 391
    Par défaut
    La majeur partie dans MON CAS que c'est exception arrive est quand en declarant un tabeau de n item tu essaye de pointer sur des variables avec un rang plus grand que n

    Verifie en pas a pas ton prog pour trouver a quel niveau ton prog fait l'exception

    cordialement

  3. #3
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par défaut
    dans le multitreading les problemes les plus recurants sont :

    - vouloir faire de l'ihm en multi-treading
    - violation d'intégriter de variable (vouloir ecrire et lire en meme temps une variable)

    sinon les cas les plus "classiques" sont des problemes de pointeur (ou assimilé comme les dépassements de tableau)

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 104
    Par défaut
    Merci a tous, j'essaie de me deboguer. Par contre quand VC++ marque :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The thread 0x544 has exited with code 0 (0x0).
    Comment savoir de quel thread il s'agit ? (classe implémentée, HANDLE ....)

    Merci

  5. #5
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par défaut
    lorsque tu crées un thread, un ID est attribué à chacun. C'est à toi de le tracer.

    dans CreateThread c'est le dernier parametre
    dans un CWinThread c'est m_nThreadID

  6. #6
    mat.M
    Invité(e)
    Par défaut
    la Drogue C'est Mal a donné une bonne méthode
    Sinon Boundschecker

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 104
    Par défaut
    Merci la drogue, je vais tester

    Sinon, c'est quoi BoundsChecker ?

  8. #8
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Sous VC++, tu peux donner un nom à ton thread visible dans le débogueur:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
        /// Donne un nom au thread appelant cette fonction.
        /// Ce nom apparaît dans le débogueur de VC++
        void SetCurrentThreadName( const char * ThreadName )
        {
            typedef struct tagTHREADNAME_INFO
            {
                DWORD dwType; // must be 0x1000
                LPCSTR szName; // pointer to name (in user addr space)
                DWORD dwThreadID; // thread ID (-1=caller thread)
                DWORD dwFlags; // reserved for future use, must be zero
            } THREADNAME_INFO;
     
            THREADNAME_INFO info;
            info.dwType = 0x1000;
            info.szName = ThreadName;
            info.dwThreadID = static_cast<DWORD>( -1 ); // thread courant
            info.dwFlags = 0;
     
            __try
            {
                ::RaiseException( 
                    0x406D1388, 
                    0, 
                    sizeof info / sizeof(DWORD),
                    (DWORD*)&info );
            }
            __except ( EXCEPTION_CONTINUE_EXECUTION )
            {
            }
        }

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 104
    Par défaut
    Merci, avec ca, je devrais me debogguer !!! Thanks a lot !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/06/2008, 16h03
  2. First Chance Exception
    Par Moustico dans le forum C#
    Réponses: 2
    Dernier message: 10/12/2007, 16h00
  3. Réponses: 18
    Dernier message: 09/10/2007, 10h20
  4. Logiciel de filtre web. Comment les éviter
    Par babemagus dans le forum Applications
    Réponses: 3
    Dernier message: 03/03/2006, 17h38
  5. Problemes de doublons...comment les éviter?
    Par paflolo dans le forum Langage SQL
    Réponses: 5
    Dernier message: 28/02/2006, 14h57

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