Antecedentes: soy nuevo en WinDbg y trato de hacerlo funcionar por primera vez. Quiero examinar un volcado de memoria que tomé de un sitio ASP.NET 4 en ejecución alojado en IIS 7 en Windows Server 2008 (x86) y lo descargué a mi máquina local.
Instalé las herramientas de depuración y lancé WinDbg por primera vez, abriendo el volcado de memoria. Fui a Archivo | Ruta del archivo de símbolos y establecer la ruta *srv*c:\symbols*http://msdl.microsoft.com/download/symbols*
y esperar a que se carguen todos los símbolos.
Al intentar cargar SOS, me encontré con problemas. Primero, probé el siguiente comando ...
.loadby sos mscorwks
... y recibió la respuesta Unable to find module 'mscorwks'
.
Después de recorrer la web, intenté cargar mscorwks ejecutando el siguiente comando ...
sxe ld mscorwks.dll
g
... y recibí la respuesta "No hay errores de depuradores ejecutables en 'g'"
Copié SOS.dll (de C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319) en el directorio WinDbg, luego intenté ...
.load sos
... y recibí el error ...
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.
No estoy muy seguro de cómo proceder. Solo quiero cargar SOS y buscar en este archivo de volcado. Cualquier ayuda sería muy apreciada.
Fyi ... Estoy tratando de abrir el archivo de volcado en una versión de 64 bits de Windows 7 con la versión de 64 bits de Windbg.
.loadby sos clr
que entiendoUnable to find module 'clr'
. Estoy tratando de depurar .NET 4 con x64 WinDbgsxe ld clr
que pare cuando se ha cargado el CLR y luego puede cargar SOS en ese punto.El comando WinDbg 'g' significa [Continuar]
Como está abriendo un archivo de volcado, no hay forma de 'continuar', solo contiene la memoria del proceso.
Por lo tanto, el mensaje "No hay errores de depuración ejecutables en 'g'" es lógico en su caso ya que el proceso no se está ejecutando .
Con respecto a la carga de la versión correcta de SOS, use el siguiente comando según la versión de .NET.
.NET 4 y superior .loadby sos
.NET 3.5 y 2 .loadby sos mscorwks
.NET 1.0 y 1.1 .load clr10 \ sos
fuente
Las respuestas anteriores necesitan mejoras, ya que con el tiempo las cosas han sido más fáciles de manejar.
JOHN ROBBINS tiene un buen artículo al respecto, vea que los servidores de símbolos de Microsoft están configurados en la ruta del archivo de símbolos y se ejecutan! Para verificar, ejecute .chain en el indicador y verá el dll cargado.
fuente
Acabo de encontrar un problema similar al cargar SOS y estaba obteniendo "no se pudo encontrar el módulo especificado". Se le ocurrió una solución diferente, así que si las soluciones aquí no le ayudan, pruebe esto:
.loadby sos clr: no se pudo encontrar el módulo especificado
fuente