134 votes

Impossible de charger SOS dans WinDbg

Contexte: je suis nouveau sur WinDbg et d'essayer de le remettre en marche pour la première fois. Je veux examiner un vidage de la mémoire j'ai pris en cours d'exécution ASP.NET 4 site hébergé dans IIS 7 sur Windows Server 2008 (x86) et téléchargée sur ma machine locale.

J'ai installé les outils de débogage et lancé WinDbg pour la première fois, l'ouverture de vidage sur incident. Je suis allé le Fichier | Symbole Chemin d'accès au Fichier et définissez le chemin d'accès "*srv*c:\symbols*http://msdl.microsoft.com/downloads/symbols*" et attendu pour tous les symboles de la charge.

Lorsque vous essayez de charger SOS, j'ai couru dans des problèmes. Tout d'abord, j'ai essayé la commande suivante...

.loadby sos mscorwks

...et a reçu la réponse "Impossible de trouver le module "mscorwks'".

Après avoir écumé 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 "Non praticable debuggees erreur en "g""

J'ai copié SOS.dll (à partir de C:\Windows\Microsoft.NET\Framework\v4.0.30319) dans le WinDbg répertoire, puis essayé...

.load sos

...et reçu le message d'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 suis pas tout à fait sûr de savoir comment procéder. Je veux juste de la charge de SOS et de creuser autour de ce fichier de vidage. Toute aide serait grandement appréciée.

Pour info...je suis en train d'essayer d'ouvrir le fichier de vidage sur une version 64 bits de Windows 7 avec la version 64 bits de Windbg.

208voto

Brian Rasmussen Points 68853

Le common language runtime, runtime dll a été renommé clr.dll avec .NET 4. Afin de charger la version correcte de SOS vous avez besoin d'ajuster votre .loadby commande. I. e.

.loadby sos clr

Aussi, si vous êtes en 64 bits, vous devez installer la version 32 bits d' Outils de Débogage pour Windows ainsi pour déboguer des applications 32 bits. Ils installent côte à côte, donc il n'y a pas de problème dans le fait d'avoir à la fois 32 bits et la version 64 bits sur la même machine.

Je voudrais des conseils contre la copie SOS.dll. SOS doit correspondre à la version exacte du cadre, tant et aussi longtemps que vous le charger à partir de la cadre de répertoire à l'aide de .loadby, vous êtes tous ensemble.

18voto

HerbalMart Points 479

Le WinDbg commande " g " signifie [Continuer]

Puisque vous êtes à l'ouverture d'un fichier de vidage il n'y a aucun moyen de "continuer", il ne contient que le processus de la mémoire.

Si le message "Pas praticable debuggees erreur en" g "" est logique, dans votre cas, puisque le processus n'est pas en cours d'exécution.

Concernant le chargement de la version correcte de SOS utilisez la commande suivante selon la .Version NET.

.NET 4 et supérieur .loadby sos

.NET 3.5 et 2 .loadby sos mscorwks

.NET 1.0 et 1.1 .charge clr10\sos

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X