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 trou de mémoire que j'ai pris dans une course. ASP.NET 4 site hébergé dans IIS 7 sur Windows Server 2008 (x86) et téléchargé sur ma machine locale.

j'ai installé le debugging tools et j'ai lancé WinDbg pour la première fois, ouvrant le crash dump. Je suis allé à File / Symbol File Path et j'ai mis le chemin à "*srv*c:symbols*http://msdl.microsoft.com/downloads/symbols*" et attendu pour tous les symboles de la charge.

en essayant de charger SOS, j'ai rencontré des problèmes. Tout d'abord, j'ai essayé la commande suivante...

.loadby sos mscorwks

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

après avoir récuré le web, j'ai essayé de charger des mscorwks en exécutant la commande suivante...

sxe ld mscorwks.dll
g

...et reçu le la réponse "Aucun exécutable debuggees erreur en" g ""

j'ai copié SOS.dll (à partir de C:WindowsMicrosoft.NETFrameworkv4.0.30319) dans le répertoire WinDbg, 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 sais pas comment procéder. Je veux juste charger SOS et fouiller dans ce fichier. Toute aide serait grandement appréciée.

pour Info...J'essaie d'ouvrir le fichier dump sur un Version 64 bits de Windows 7 avec la version 64 bits de Windbg.

128
demandé sur Kevin Babcock 2010-12-07 08:28:48

4 réponses

le CLR runtime dll a été renommé en clr.dll avec .NET 4. Ainsi, pour charger la version correcte de SOS, vous devez ajuster votre commande .loadby . C'est-à-dire:

.loadby sos clr

aussi, si vous êtes sur 64 bits, vous devriez installer la version 32 bits de outils de débogage pour Windows aussi bien afin de déboguer des applications 32 bits. Ils installent côte à côte, donc il n'y a aucun problème à avoir à la fois la version 32 bits et la version 64 bits sur la même machine.

je déconseille de copier SOS.DLL. SOS doit correspondre à la version exacte du framework, aussi longtemps que vous le chargez à partir du répertoire framework en utilisant .loadby , vous êtes prêt.

196
répondu Brian Rasmussen 2010-12-07 05:45:46

la commande WinDbg 'g' signifie [Continue]

puisque vous ouvrez un fichier dump, il n'y a aucun moyen de "continuer", il ne contient que la mémoire du processus.

donc le message "No runnable erreur de débogueurs dans 'g' "est logique dans votre cas puisque le processus n'est pas running .

concernant le chargement de la version correcte de SOS utilisez la commande suivante en fonction du .NET version.

.NET 4 et supérieur .loadby sos

.NET 3.5 et 2 .loadby sos mscorwks

.NET 1.0 et 1.1 .charge clr10\sos

15
répondu HerbalMart 2014-07-29 11:41:46

vient de tomber sur un problème similaire chargement SOS et était d'obtenir"module spécifié ne pouvait pas être trouvé". J'ai trouvé une solution différente donc si les solutions ici ne vous aident pas, essayez ceci:

.loadby sos clr - module spécifié est introuvable

0
répondu Denis 2017-05-23 11:47:32

les Réponses ci-dessus doivent être améliorées, car au fil du temps, les choses ont été plus faciles à gérer pour le chargement sos.

JOHN ROBBINS a nice article autour de lui, voir que les serveurs de symbole de Microsoft sont configurés dans le chemin du fichier de symbole et exécuter !analysez-v sur l'invite windbg, cela fera l'affaire il téléchargera les fichiers sos pertinents. Pour vérifier l'exécution .chaîne sur l'invite et vous verrez la dll chargée.

0
répondu Kiran Prabhu 2017-05-10 10:48:51