2010-02-01 4 views
1

J'ai une application C# qui se bloque parfois pour une raison inconnue. Par conséquent, je veux trouver le fichier de vidage sur incident, mais il n'existe pas. J'ai également écrit une petite application qui provoque une exception DivideByZero (non gérée). Les conséquences de ceci: sur le seul système, le programme se ferme sans aucun message, sur l'autre système (VM), je reçois un rapport d'accident simple qui veut envoyer des données à Microsoft.C# crash dump n'existe pas

J'ai configuré drwtsn.exe et les paramètres du Registre. J'ai également essayé d'utiliser WinDbg sans succès.

Est-ce que quelqu'un sait comment je peux forcer le système à écrire des fichiers de vidage?

Meilleures salutations, el

Répondre

1

ADPlus est la meilleure façon. La documentation complète commence ici: http://support.microsoft.com/kb/286350

+0

Je préférerais une possibilité avec laquelle un client n'a pas à configurer son PC. Est-ce qu'il y a un autre moyen??? merci dans le conseil – elCapitano

3

Vous devez écrire un gestionnaire d'événements pour l'événement AppDomain.UnhandledException. La journalisation de la valeur e.ExceptionObject.ToString() est presque toujours suffisante, la trace de la pile vous indique comment le code a rencontré des problèmes. P/Invocation de MiniDumpWriteDump() à partir de dbghelp.dll est également possible, vous obtiendriez un fichier .dmp que vous pourriez utiliser pour analyser l'exception avec WinDbug. Dbghelp.dll est disponible sur Vista et Win7, vous pouvez l'obtenir à partir du téléchargement Debugging Tools for Windows pour les versions antérieures. Cependant, vous ne pouvez pas obtenir de bonnes traces de pile gérées à partir de ce minidump, pas avant que VS2010 ne soit livré.

+0

merci pour votre awnser, mais l'événement UnhandledException n'est pas appelé. Mon application se termine sans aucun indice. – elCapitano