Je constate que le IDE se casse parfois lorsque mon application se termine.
Lorsque cela se produit, la pile d'appels est vide et la liste des fils affiche des fils qui ne me révèlent aucune information.
Lorsque je choisis "Debugger" - "Step into", le IDE se ferme/normalement de façon terminale, donc je ne vois pas comment je pourrais examiner plus avant les causes de la rupture.
Le fait de cliquer sur "Vérifier les tâches en cours" n’affiche aucune tâche . Le fait de cliquer sur "Poursuivre l’exécution" ferme apparemment le débogage . Le fait de cliquer sur "Afficher les outils de diagnostic" affiche l’événement "Arrêt à l’exécution: arrêté à l’exécution", ne m'en dit plus.
Une capture d'écran est jointe.
Comment puis-je rechercher la cause de cette rupture?
Edit: J'ai essayé ce qu'un membre du forum avait suggéré, mais cela ne donnerait rien qui puisse m'aider, je pense. Ceci est une capture d'écran:
Je n'ai trouvé aucun moyen de résoudre le problème ... J'ai résolu le problème de la manière bruteforce:
J'ai supprimé tous les assemblages et objets COM un par un jusqu'à ce que l'erreur disparaisse.
Dans mon cas, j'avais un contrôle public avec un WithEvents dans un module ..__ Il semble que VB.NET n'ait pas du tout aimé ça. À partir de maintenant, je mettrai le contrôle et son contenu sous une forme.
Le problème principal reste cependant: Visual Studio n'offre aucune aide pour isoler facilement le problème.
Dans l'une de mes applications Web, j'avais le même problème. Pour découvrir ce qui n'allait pas, après avoir recherché des problèmes similaires, la plupart ont suggéré de modifier mes options de débogage. Ainsi, dans les options de débogage, sous général, j'ai marqué la deuxième option "Interrompre tous les processus lorsqu'un processus se rompt" et presque en bas, "Activer la modification native et continuer"; "Appliquer les modifications et continuer".
Avec cela, mon application s'est finalement arrêtée là où j'avais le problème (caractères illégaux dans une chaîne qu'ajax n'aimait pas) et a pu évaluer les valeurs et découvrir ce qui n'allait pas, éditer le code à l'aller jusqu'à ce que ça marche .. Voici une capture d’écran de mes options de débogage. J'espère que vous attrapez votre bug :)
Il se peut que vous ne puissiez pas voir le code où l'exception se produit s'il fait partie d'une bibliothèque ou de quelque chose que vous n'avez pas écrit. Ce qui suit pourrait aider:
Débogage> Options> Général> Décocher "Activer uniquement mon code"
Lorsque vous êtes dans le débogueur, vous pouvez accéder à la fenêtre de visualisation et utiliser des pseudovariables pour afficher des informations sur la cause. $exception
est particulièrement utile.
Consultez le document sur pseudovariables .
Cela peut également se produire lorsqu'une application Winforms à thread unique prend plus de 60 secondes pour effectuer une action dans le thread principal.
Je l'ai résolu correctement, en appelant Application.DoEvents () à intervalles réguliers à partir du thread principal, pendant un traitement trop long. Les exceptions qui se produisent entre les appels Application.DoEvents sont gérées correctement dans l'EDI.
Cela peut se produire parce qu'une méthode ou un constructeur est inaccessible (privé ou interne), mettez-le comme public.
Le XAML a besoin d'appeler les méthodes pour démarrer l'application