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

Windows Discussion :

[Threads] Savoir si un thread a provoqué une erreur


Sujet :

Windows

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Philippines

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 244
    Points : 609
    Points
    609
    Par défaut [Threads] Savoir si un thread a provoqué une erreur
    Bonjour à vous!

    Peut-on savoir via une API si un identifiant de thread pointe sur rien ou sur un thread existant.
    Voilà exactement mon probleme:
    Je voudrais pouvoir lancer un thread. Dans le cas ou celui-ci plante ou s'arrete, un second thread le remarquerait (car le premier "n'existerai plus" ou serait dans un etat particulier).

    J'ai cherché mais jusqu'à maintenant c'etait en vain! Merci de votre aide!

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Philippines

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 244
    Points : 609
    Points
    609
    Par défaut
    Hmmmm... Lorsque le thread a planté, il reste tout de meme dans la liste des threads jusqu'à la fermeture de la boite de dialogue "Acces violation"... Donc ce que je viens de faire (verifier tout les threads en cours) ne me sert a rien


    Quelqu'un aurait une meilleure idée?

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Philippines

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 244
    Points : 609
    Points
    609
    Par défaut
    Bon je vais encore generaliser la question !

    Comment intercepter des violation d'acces dans un thread??? Est-ce possible? ^^

    Si quelqu'un a une info à me fournir, meme en chinois, je le remercie bien

  4. #4
    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
    ben, on peut les intercepter dans le même thread avec le Structured Exception Handling, mais je ne crois pas que ce soit interceptable dans un autre thread... Avec les APIs de débogage peut-être?
    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.

  5. #5
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par anykeyh
    Bonjour à vous!

    Peut-on savoir via une API si un identifiant de thread pointe sur rien ou sur un thread existant.
    C'est simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if( thread==NULL) AlerteFaireQQchose();
    Un thread physiquement c'est un pointeur de fonction initialise par _beginthread , CreateThread ou autre.
    En ASM c'est une adresse qui est appelee a intervalles reguliers par le "scheduler" de l'OS
    Consulter le MSDN

  6. #6
    Expert éminent sénior

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    ASM ou C++, un thread reste un thread.
    Les SEH sont spécifiques à chaque thread. Mais quelque part c'est pas plus mal que ce soit ton thread qui s'occupe de détecter son propre plantage plutôt qu'un autre thread...
    Avec VC++, tu disposes des mots-clés spécieux __try...__except pour intercepter les access violation etc... mais un catch(...) c++ classique fonctionne aussi (mais ce n'est pas un comportement garanti avec d'autres compilos).

  7. #7
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    ASM ou C++, un thread reste un thread.
    Oui merci je sais
    Je me suis mal exprime j'ai voulu faire une analogie avec ce qui se passe en interne au niveau code machine et adresse memoire

Discussions similaires

  1. [Thread]Savoir si un thread s'est bien terminé.
    Par thibaut dans le forum Général Java
    Réponses: 16
    Dernier message: 27/09/2006, 17h30
  2. msaccess a provoqué une erreur dans KERNEL32.dll
    Par massol joel dans le forum Access
    Réponses: 12
    Dernier message: 03/04/2006, 14h32
  3. Cells (1,1) provoque une erreur
    Par Opo dans le forum Access
    Réponses: 9
    Dernier message: 07/03/2006, 16h29
  4. [SGBD] mysql_fetch_array provoque une erreur
    Par nicerico dans le forum Requêtes
    Réponses: 6
    Dernier message: 06/10/2005, 14h20
  5. Select Case provoque une erreur
    Par defluc dans le forum SQL
    Réponses: 6
    Dernier message: 14/08/2005, 23h59

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