Contexte: Je suis nouveau sur WinDbg et j'essaie de le faire fonctionner pour la première fois. Je veux examiner un vidage de mémoire que j'ai pris à partir d'un site ASP.NET 4 en cours d'exécution hébergé dans IIS 7 sur Windows Server 2008 (x86) et téléchargé sur ma machine locale.
J'ai installé les outils de débogage et lancé WinDbg pour la première fois, ouvrant le vidage sur incident. Je suis allé à File | Chemin du fichier de*srv*c:\symbols*http://msdl.microsoft.com/download/symbols*
symboles et définissez le chemin et attendez que tous les symboles se chargent.
En essayant de charger SOS, j'ai rencontré des problèmes. Tout d'abord, j'ai essayé la commande suivante ...
.loadby sos mscorwks
... et a reçu la réponse Unable to find module 'mscorwks'
.
Après avoir parcouru le Web, j'ai essayé de charger mscorwks en exécutant la commande suivante ...
sxe ld mscorwks.dll
g
... et a reçu la réponse "Aucune erreur de débogage exécutable dans 'g'"
J'ai copié SOS.dll (à partir de C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319) dans le répertoire WinDbg, puis j'ai essayé ...
.load sos
... et a reçu l'erreur ...
The call to LoadLibrary(sos) failed, Win32 error 0n193
"%1 is not a valid Win32 application."
Please check your debugger configuration and/or network access.
Je ne sais pas trop comment procéder. Je veux juste charger SOS et creuser autour de ce fichier de vidage. Toute aide serait grandement appréciée.
Pour info ... J'essaye d'ouvrir le fichier de vidage sur une version 64 bits de Windows 7 avec la version 64 bits de Windbg.
.loadby sos clr
je reçoisUnable to find module 'clr'
. J'essaye de déboguer .NET 4 avec x64 WinDbgsxe ld clr
pour arrêter lorsque le CLR a été chargé, puis vous pouvez charger SOS à ce stade.La commande WinDbg 'g' signifie [Continuer]
Puisque vous ouvrez un fichier de vidage, il n'y a aucun moyen de «continuer», il ne contient que la mémoire de processus.
Donc , le message « No exécutables Erreur débogués dans« g » est logique dans votre cas , puisque le processus ne fonctionne .
Concernant le chargement de la version correcte de SOS, utilisez la commande suivante en fonction de la version .NET.
.NET 4 et supérieur .loadby sos
.NET 3.5 et 2 .load par sos mscorwks
.NET 1.0 et 1.1 .load clr10 \ sos
la source
Les réponses ci-dessus doivent être améliorées, car au fil du temps, il a été plus facile de gérer le chargement sos.
JOHN ROBBINS a un bel article autour de lui, voyez que les serveurs de symboles Microsoft sont configurés dans le chemin du fichier de symboles et exécutez! Analysez -v sur l'invite windbg, cela fera l'affaire, il téléchargera les fichiers sos pertinents. Pour vérifier, exécutez .chain à l'invite et vous verrez la DLL chargée.
la source
Je viens de rencontrer un problème similaire lors du chargement de SOS et obtenait "le module spécifié n'a pas pu être trouvé". J'ai trouvé une solution différente, donc si les solutions ici ne vous aident pas, essayez ceci:
.loadby sos clr - le module spécifié est introuvable
la source