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 :

Pile des threads d'un process


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 203
    Par défaut Pile des threads d'un process
    Bonjours a tous

    Y a t-il un moyen de tracer la pile de tous les threads d'un process en C#


    Merci pour votre aide

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    C'est à dire ?

    Soit plus claire... car j'ai peur de pas comprendre.

    quoi qu'il en soit, seul le thread, en cours peut accèder au tracé de sa pile grâce à System.Diagnostics.StackTrace... sinon se serait trop facile

    Cependant je ne saurais trop déconseiller l'usage de StackTrace car ce mécanisme est très lent... de plus StackTrace ne trace pas la totalité de la pile d'appel, pour peu par exemple que certaines méthodes soient "inlinés" et vu qu'elles ne sont plus réellement appelées et bien elles napparaissent pas dans la pile... Donc ce n'est pas fiable à 100% si tu souhaite connaitre ou déboguer le passage dans les diverses fonction de ton assembly.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 203
    Par défaut
    Le but c'est de tracer la pile de tous les threads de l'application en cours, ou au moins d'un thread donné.
    Le problème c'est que l'IHM se freeze mais on ne sait pas pourquoi. Par contre on arrive à détecter le freeze. Donc le but c'est de tracer la pile du thread principal de l'IHM au moment du freeze.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    est ce que votre ihm est en STAThread ou en MTAThread ?

    le probleme c'est que STACKTRACE ne permet de récupérer la trace de pile que du thread qui l'invoque, pas d'un autre à ma connaissance.
    est ce que tu as d'autres threads, et des accès concurrenciels à des ressources ?
    des sections protégées avec des monitor.enter/exit ou autre mécanisme de synchro ?
    si oui il y a peut etre une deadlock ou ton thread d'ihm est bloqué due au fait que quand tu n'utilise pas la commande "lock" de C# il faut faire attention à ce que ton thread libére SYSTEMATIQUEMENT le verrou posé, ce qui n'estpas fait si ta un return en cours de route ou une exception et ke tu ne met pas le deverrouillage dans un finally, ce qui fait que tout autre tentative de lock ou de monitor.enter sera bloquant et freeze le thread.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Par défaut
    Salut,

    je ne sais pas si ca va t'aider, mais j'avais cette source qui trainait dans mes bookmarks. C'est une lib de detection de deadlock, qui masque la classe monitor du framework (donc normalement, tu ne touches pas ton code). Je n'ai pas du tout testé mais cela peut peut-etre t'aider.

    Bon courage.

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/02/2004, 12h50
  2. Une question à propos des thread
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/11/2003, 14h03
  3. Variable globale / Propriété des threads
    Par rgarnier dans le forum XMLRAD
    Réponses: 4
    Dernier message: 03/10/2003, 10h49
  4. [reseaux] Gestion des threads en perl
    Par totox17 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 28/11/2002, 09h40
  5. Programmer des threads
    Par haypo dans le forum C
    Réponses: 6
    Dernier message: 02/07/2002, 13h53

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