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

Dotnet Discussion :

Crash aléatoires dans un programme quasi-totallement managé


Sujet :

Dotnet

  1. #1
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut Crash aléatoires dans un programme quasi-totallement managé

    Bien que j'ai pas trop de chance avec les questions ces temps cis ( ) franchement, là je sèche et je me demande si vous pourriez m'aider.
    J'ai une usine à gaz programmée en C#, qui utilise beaucoup ( plusieurs dizaines ) de dll managée toute chargées dans le même AppDomain mais qui sont des plugins et qui peuvent donc faire un peut ce qu'elle veullent c'est à dire créer des threads, faire des BeginInvoke, etc...

    Pour pallier aux risques de crash j'ai donc rajouté des events pour Application.OnThreadException et AppDomain.CurrentDomain.UnhandledBidule ...
    Cette technique me permet d'attraper bon nombre d'erreurs mais celà ne marche pas toujours.
    En effet, j'ai remarqué que si une exception survenait dans un autre thread, en général, celà conduisait à un crahs complet de l'usine à gaz. Je me demande donc, peut on automatiquement gérer les exceptions qui surviennent à partir d'un autre Thread ? ( rajouter un UnhandledExceptionHandler sur chaque thread crée mais de manière dynamique, c'est à dire, sans modifier le code des plugins ... ).
    De plus, le crash qui survient ne me permet vraiment pas de savoir d'où l'erreur venait. J'ai éssayer de traiter le fichier minidump crée automatiquement par Windows mais il m'apprend juste qu'il y a eu un crash dans ntdll.dll, appellée par kernel32.dll, appellée par mscorwks.dll, etc etc, sans aucun nom de fonction et sans stacktrace de la pile managée.

    Quelqu'un pourrai t il m'aider ?

    ps. je dit "quasi-totallement managé" car parmis les plugins,il y en a qui peuvent appeller des dlls en C++ mixte qui peut ensuite appellé du C++ purement natif, mais pourtant, aucune de ces parties natives n'est, à priori, active, lors du crash de l'usine à gaz ...

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Bon,
    Le Crash était du à un StackOverflow apparament et on ne peut donc pas attraper, a priopri, ce genre d'exception vu que le stack est déjà dépassé ...

    On va donc dire que c'est résolu ...

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

Discussions similaires

  1. Winform c# dans un programme C++ non managé
    Par bdurtaut dans le forum C++/CLI
    Réponses: 3
    Dernier message: 05/11/2007, 10h10
  2. Memory Managment dans vos programmes
    Par Clad3 dans le forum C++
    Réponses: 11
    Dernier message: 25/07/2006, 01h25
  3. Réponses: 2
    Dernier message: 24/06/2003, 20h31
  4. [] Utiliser AVI d'une DLL dans mon programme
    Par seb.49 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/05/2003, 14h52
  5. [langage] Commande DOS dans un programme
    Par Jibees dans le forum Langage
    Réponses: 15
    Dernier message: 23/04/2003, 12h08

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