8
votes

Comment puis-je obtenir un décharge de crash

J'ai besoin d'obtenir une décharge d'accident d'un programme. Comment puis-je l'obtenir? Le programme est écrit en C #. Quel est exactement un déchargement de crash? Quand est-ce créé? Où est-il sauvé? Comment puis-je le lire?


3 commentaires

Voulez-vous dire que vous devez créer une vidage lorsque l'application se bloque ou avez-vous juste besoin de prendre une mémoire de mémoire d'une application en cours d'exécution? Parce que les deux sont assez variés.


blogs.msdn.com/b/debugger/archive/2009/12/30/... - bien expliqué!


Duplicailleux possible de Comment puis-je prendre un bon déchargement .Net?


5 Réponses :


1
votes

Vous pouvez également essayer d'utiliser WINDBG

http://www.windbg.org/

Un décharge de crash est lorsque le contenu de la mémoire RAM et certaines parties du processeur sont copiés dans un fichier. Ce fichier est créé au point critique d'une erreur et peut être utilisé pour déboguer le problème.

Cela a fonctionné pour moi dans le passé. C'est un raccourci clavier sur la décharge de collision dans Windows. xxx

http://vinaytechs.blogspot.com/2010/01/how-to-get-crash-or-hang-dump.html


2 commentaires

Le CrashONCTRLSCRL est destiné à forcer une décharge de crash en mode de noyau (écran bleu de la mort) dans Windows. Si l'OP utilise C #, c'est probablement plus que ce qu'il veut (bien que vous ayez posté avant cette mise à jour).


Tout en déterminant ce que le mode utilisateur faisait à partir d'un vidage en mode noyau est possible; C'est bien plus de travail que je voudrais faire si je pouvais l'éviter.



1
votes

Luke, un décharge de crash est un sac entier de données relatives au statut de votre demande au moment où l'accident est arrivé, de jeter les moyens d'enregistrer toutes ces informations quelque part, typiquement dans un fichier texte.

Une approche de base consiste à enregistrer la structure entière lorsqu'une exception se produit pour que vous puissiez enquêter plus tard et voir quelle méthode a échoué et jeté quelle exception, quelles valeurs de paramètre étaient et ainsi de suite. Ce n'est pas vraiment un dépotoir d'écrasement, mais aide beaucoup dans de nombreux cas.

Il y avait quelque chose qui s'est développé récemment par SM sur les décharges de crash et les accidents de l'application, je pense qu'il était lié à Windows 7 en fait ...

Voir ici: récupération de l'application et redémarrage

http://msdn.microsoft.com /en-us/library/cc948909(V=VS.85).aspx


0 commentaires

2
votes

sur Windows XP Vous pouvez créer un fichier de vidage avec cet utilitaire:

http://www.microsoft.com/downloads/fr/details.aspx?familyid=e089c8-f6A87-40C8-BF69-28AC08570b7e&displaylang=fr P >

Une fois installé parcourir le répertoire d'installation et exécuter p>

userdump PID


1 commentaires

Je recommande vivement de ne pas utiliser le "Créer le fichier de vidage de la tâche". Sur le système 64 bits, il crée des décharges de 64 bits de processus 32 bits. Ces fichiers de décharge sont presque inutiles à moins que vous ne souhaitez que utiliser WINDBG et les extensions WOW64: msdn.microsoft.com/en-us/library/aa384163 (vs.85) .aspx .



2
votes

utiliser adplus. Il est livré avec les outils de débogage pour Windows. Cela va créer des dossiers de décharges de crash situées sous son annuaire de domicile. Vous pouvez les analyser avec Windbg par la suite.


0 commentaires

23
votes

Depuis que vous dites C #, je suppose que vous utilisez la plate-forme Windows.

Un crashdump ou une vidage juste est l'instantané de mémoire complet et d'autres informations système associées d'un processus à un moment donné. Les décharges peuvent être utilisées pour déboguer des collisions de programme, des suspenses, des fuites de mémoire et de ressources et probablement plus de problèmes que je n'ai pas répertorié ici. P>

Dans le cas des accidents et presse la première pièce de données que vous souhaitez obtenir d'un Le dépotoir de crash sera le CallStack. Cela indique le point d'un crash ou du point à laquelle une opération bloquée et n'a jamais été retournée pour que le programme se trouve et ne fait rien. P>

Pour fuites de ressource, plusieurs décharges de mémoire d'un processus peuvent être collectées sur une période de temps. et examiné pour voir quels objets en mémoire grandissent le plus. Cela peut aider à réduire les parties du code causant la fuite. Pour en savoir plus sur le débogage des problèmes spécifiques, je recommande vivement Ce blog . P>

Il existe quelques façons de capturer un fichier de vidage. p>

  1. procdump ( http://technet.microsoft.com/en-us/ Sysinternals / DD996900.ASPX ) LI>
  2. Visual Studio 2010 ( http: / /msdn.microsoft.com/en-us/Library/vstudio/fk551230(v=VS.100).aspx ) LI>
  3. windbg - pas trop mal mais plus intimidant que les autres outils li> ol>

    avec procdump, vous pouvez simplement faire: p>

    c:\>procdump.exe -ma -e YourProcessName.exe
    


0 commentaires