web-dev-qa-db-fra.com

WinDbg ne parvient pas à charger SOS.dll

J'ai besoin de déboguer une application gérée 32 bits à l'aide de WinDbg, mais WinDbg refuse obstinément de charger l'extension SOS.dll. Après de nombreuses recherches sur Internet et des essais, je suis perplexe. J'ai de l'expérience dans le débogage de code non managé avec WinDbg mais c'est ma première tentative avec managé.

Lorsque je demande à WinDbg de charger le SOS.dll par défaut, il donne cette erreur:

sxe ld clr                <- I wait until the clr has loaded
.loadby sos clr

The call to LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos) failed,     Win32 error 0n193
    "%1 is not a valid Win32 application."
Please check your debugger configuration and/or network access.

Et si j'essaie de spécifier le SOS.dll, je reçois une erreur différente:

.load C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos clr

The call to LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos clr) failed, Win32 error 0n126
    "The specified module could not be found."
Please check your debugger configuration and/or network access.

Ma configuration est VM-to-VM via une connexion série et les deux machines virtuelles sont Windows Server 2008 R2 SP1. Les outils de débogage pour Windows (x64) sont installés sur les deux machines virtuelles.

REMARQUE: Il semble installer les outils de débogage x86 sur un processeur x64 comme suggéré dans cette solution n'est pas possible (ni nécessaire) dans les systèmes d'exploitation Windows plus récents, veuillez ne pas le suggérer. Le programme d'installation échoue avec une erreur.

Merci d'avance pour vos idées.

26
mvwhyatt

Il est possible d'installer les versions x86 et x64 de WinDbg sur la même machine, et si vous déboguez une application .NET 32 bits, vous devez utiliser la version x86 de WinDbg/SOS. Le message d'erreur vous indique que vous essayez de charger la mauvaise version de SOS pour le bitness de l'application.

Il y a quelques conseils supplémentaires ici .

17
Brian Rasmussen

Par défaut, le programme d'installation semble mettre les versions 32 bits et 64 bits de WinDbg sur le système sans invite - est-il possible que vous exécutiez la mauvaise?

Recherchez un répertoire "x86" dans le répertoire où WinDbg est installé et exécutez la version de windbg.exe qu'il contient.

10
shoebox