2010-01-20 11 views
6

Je suis à la recherche de fichiers de vidage pour un processus géré. Je sais que je peux utiliser windbg pour créer un fichier de vidage, mais je me demande s'il y a des drapeaux spéciaux que je devrais passer à la commande ".dump", étant donné que c'est une application managée au lieu d'un natif un.Création d'un fichier de vidage pour une application gérée (.net) à l'aide de windbg (ou mscordmp)

une question connexe: J'ai entendu parler d'un outil appelé mscordmp.exe (si vous le google, vous pouvez trouver la mention en ligne). Mscordmp est-il toujours pertinent? Je ne trouve nulle part un point de téléchargement, mais je pensais qu'il serait peut-être mieux adapté à la gestion de mémoire gérée que windbg.

+0

duplication possible de [Comment faire un bon vidage sur incident pour .NET?] (Http://stackoverflow.com/questions/24874027/how-do-i-take-a-good-crash-dump-for -net) –

Répondre

4

Vous devez utiliser/ma pour créer un vidage complet de la mémoire. Sinon, sos se plaindra que l'analyse gérée sera très limitée.

0

Non, il n'y a pas d'indicateurs spéciaux liés à l'application gérée, windbg crée juste un vidage de mémoire, ce sont des données brutes. Le but de votre outil d'analyse est de savoir si votre sauvegarde a été créée pour une application gérée ou non gérée.

Si parler de l'analyse de l'application gérée, vous il peut y avoir les étapes suivantes:

  1. attach windbg pour traiter application gérée en cours d'exécution
  2. run .dump /ma <outputfilename.dmp>. Il crée un fichier de vidage, cette opération peut prendre plusieurs minutes en fonction de la quantité de mémoire consommée par le processus. Les commandes de l'indicateur /ma permettent de créer un vidage complet de la mémoire du processus attaché avec toutes les options activées (il ne s'agit pas d'un vidage complet du système, mais uniquement d'un processus associé).
  3. se détacher du processus, il peut continuer à s'exécuter, tandis que vous pouvez charger le fichier de vidage dans windbg et l'analyser.
  4. sos.dll est l'extension commune windbg pour l'analyse des applications gérées.

p.s. Il peut y avoir problème en activant sos.dll avec .load sos.dll, dans ce cas vous pouvez essayer .loadby sos mscorwks.