2010-11-19 14 views
1

Je veux écrire un utilitaire qui en cas d'erreur fatale, un fichier minidump dmp est créé. J'utilise l'API clrdump et cela semble assez simple. Ce que je voulais savoir, c'est ce que je devrais lire pour déterminer comment déclencher un événement quand il y a une erreur fatale qui permet de créer ce minidump.erreur fatale minidump

Je vais l'écrire en C#.

Merci.

Répondre

1

AppDomain.UnhandledException est votre ami.

Prenez garde que l'information d'exception que vous pouvez extraire de e.ExceptionObject est presque toujours plus utile que la minidump. Avez-vous déjà essayé le débogage minidump? Ils sont inestimables pour les programmeurs C/C++ lorsqu'ils sont créés dans le jeu de callback défini par SetUnhandledExceptionFilter(). Cependant, ce n'est pas approprié dans un programme géré, le CLR en installe déjà un. Non Avoir à vider les minidumps et obtenir des traces de piles propres est l'un des grands avantages de .NET.

+0

On vient de me demander d'examiner cela par mon superviseur. Je pense qu'ils veulent les utiliser quand il y a des problèmes avec les logiciels internes, cela peut être généré automatiquement et regardé à une date ultérieure, plutôt que de compter sur les commentaires des utilisateurs. Je n'ai jamais fait de débogage minidump dans ma vie :) Je suis un étudiant sur un stage industriel de 12 mois. Merci pour la réponse. –

+1

Je suppose que votre superviseur est un vieux hacker C. Mettre en place un filet de sécurité imaginaire qui a un grand trou béant n'est pas la meilleure idée. Mais, ce n'est pas votre problème si vous ne voulez pas en faire votre problème. N'est-ce pas le but des stages? Au moins savoir ce qu'il faut, google "sos.dll". –

+0

Merci Hans. J'ai regardé sos.dll et j'ai pu l'employer par la fenêtre immédiate. J'ai écrit une petite quantité de code qui génère un fichier dmp, mais maintenant quand j'ouvre et essaye d'exécuter! Dso par exemple, j'obtiens une erreur que la PDB pour mscorwks.dll ne peut pas être chargée donc je ne peux pas voir les détails! –