Comment déboguer un programme quand il se bloque sans exception?
Un de mes programmes se bloque régulièrement, mais je ne sais pas pourquoi. Je suis en cours d'exécution en mode debug, mais rien ne s'affiche. Le programme juste soudainement sorties. J'ai eu d'autres bugs qui ne lève une exception...mais pas celui-ci. Est-il une sorte de magie de l'attraper ou de quelque chose?
OriginalL'auteur mpen | 2010-09-25
Vous devez vous connecter pour publier un commentaire.
Je présume que vous êtes en cours d'exécution à partir de Visual Studio et pour quelque raison il n'est pas de s'arrêter dans le débogueur avec une exception non interceptée, auquel cas vous pouvez essayer d'attraper le crash de l'extérieur de Visual Studio. Voir ma réponse à Système.AccessViolationException de code non managé?, en particulier comment faire pour capturer une image de crash.
Si elle ne se bloque régulièrement, mais à l'intérieur d'une période de temps relativement court, commencez par Sysinternals procdump. Commencez votre exécutable à partir de l'extérieur de Visual Studio, puis exécutez:
et attendre la récolte d'un vidage sur incident - en supposant qu'il quitte en raison d'une exception non gérée - puis charger le fichier de vidage sur incident dans VS 2010 ou WinDbg.
Je voudrais de secours pour le débogage avec WinDbg et SOS[EX]. Voir mon autre réponse lié ci-dessus.
Merci, j'ai décrit mon problème en détail ici: stackoverflow.com/questions/39378849/...
OriginalL'auteur Sean Fausett
certainement vérifier que votre code, ou de l'une des libs que vous utilisez, ne pas appeler exit() (ouais peut paraître trop simple, mais une fois, nous avons perdu des heures de traçage aléatoire des programmes, des fermetures de retour à exit() appels..). Si oui, mettre un point d'arrêt ou de changement de throw(), puis exécutez à nouveau. Si non, Sean réponse semble légitime.
Aussi, vous devez définir un point d'arrêt ou de certains journaux de l'énoncé de la dernière ligne dans main() / winmain(). Éventuellement, le programme s'arrête "normalement" de ce fait dans une voie inattendue.
C'est un WPF GUI application... tout le code est dans les événements, je ne pense pas que cela devrait jamais atteindre la fin. @stijn: Assez sûr que je n'ai pas écrit la sortie des appels, mais je vais vérifier.
OriginalL'auteur stijn
Vous pouvez trouver plus de suggestions à la suite de semblables post: Dll tiers des plantages du programme avec aucune exception n'est levée.
OriginalL'auteur Sergey Vlasov