Tengo un minivolcado bloqueado de una aplicación .NET. ¿Hay alguna forma de conocer la versión de CLR (por ejemplo, la versión de mscorwks.dll) de la máquina de errores (que genera el volcado de errores) utilizando Windbg o alguna otra herramienta?¿Cómo puedo saber la versión CLR de un volcado de emergencia?
Respuesta
En WinDbg: la forma más fácil es usar el comando !eeversion
, pero si desea información adicional, puede usar el comando lm
con la opción verbosa v
para el módulo de tiempo de ejecución mscorwks
. Si está en .NET 4, el tiempo de ejecución se llama clr
, por lo que en ese caso debe cambiar el comando en consecuencia.
0:026> lm vm mscorwks
start end module name
79e70000 7a3ff000 mscorwks T (no symbols)
Loaded symbol image file: mscorwks.dll
Image path: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
Image name: mscorwks.dll
Timestamp: Wed Oct 24 09:41:29 2007 (471EF729)
CheckSum: 00597AA8
ImageSize: 0058F000
File version: 2.0.50727.1433
Product version: 2.0.50727.1433
File flags: 0 (Mask 3F)
File OS: 4 Unknown Win32
File type: 2.0 Dll
File date: 00000000.00000000
Translations: 0000.04b0 0000.04e4 0409.04b0 0409.04e4
Ir verbosa en WinDbg:
>lm v
............. (lots of modules).......
687d0000 68d06000 System_Xml_ni (deferred)
Image path: C:\Windows\assembly\NativeImages_v2.0.50727_32\System.Xml\38b9d09539b67b08ee996db6c71f8a9b\System.Xml.ni.dll
Image name: System.Xml.ni.dll
Has CLR image header, track-debug-data flag not set
Timestamp: Mon Oct 06 20:43:49 2008 (48EADAF5)
CheckSum: 00000000
ImageSize: 00536000
File version: 2.0.50727.3074
Product version: 2.0.50727.3074
File flags: 0 (Mask 3F)
File OS: 4 Unknown Win32
File type: 2.0 Dll
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: Microsoft Corporation
ProductName: Microsoft® .NET Framework
InternalName: System.Xml.dll
OriginalFilename: System.Xml.dll
ProductVersion: 2.0.50727.3074
FileVersion: 2.0.50727.3074 (QFE.050727-3000)
FileDescription: .NET Framework
LegalCopyright: © Microsoft Corporation. All rights reserved.
Comments: Flavor=Retail
Como alternativa, cargue el volcado en Visual Studio y utilizar la depuración | Windows | Ventana de herramientas de módulos para mostrar algo de esta información.
Ejemplos para dos versiones .Net diferentes, utilizando la información de versión de clr.dll:
.Net 4.0 (.x?)
Image name: clr.dll
Timestamp: Thu Mar 18 21:39:07 2010 (4BA21EEB)
...
File version: 4.0.30319.1
Product version: 4.0.30319.1
.Net 4.5.2
Image name: clr.dll
Timestamp: Fri Nov 07 20:09:21 2014 (545CA861)
...
File version: 4.5.27.0
Product version: 4.0.30319.0
+1 como esto funciona sin cargar el específico (y por lo tanto en esa máquina potencialmente no disponible) mscordacwks.dll/sos.dll etc. También agregué ejemplos para dos versiones .Net más para referencia. –
! EEVersion debería dar la versión CLR.
- 1. Cómo obtengo un volcado de emergencia
- 2. Análisis del volcado de emergencia en windbg
- 3. ¿Cómo saber la versión de jQuery programáticamente
- 4. ¿Cómo puedo saber qué versión de Java está usando Tomcat6?
- 5. ¿Cómo puedo saber qué versión de OpenGL estoy usando?
- 6. Obtener la versión del marco .NET de un proceso de volcado
- 7. ¿Cómo puedo saber qué versión de Cassandra estoy ejecutando?
- 8. ¿Cómo puedo saber qué versión de Javascript estoy usando?
- 9. ¿Cómo puedo saber qué versión de TinyMCE estoy ejecutando?
- 10. Cómo especificar la versión .NET al usar la opción/CLR
- 11. Coincidencia de compensaciones en el volcado de emergencia de iOS con el binario desmontado
- 12. Cómo analizar un archivo de volcado de bloqueo usando GDB
- 13. ¿Qué hacer con "La versión de SOS no coincide con la versión de CLR que está depurando" en WinDbg?
- 14. Incluyendo datos personalizados en volcados de emergencia de iOS
- 15. Sin CLR versión v4. se carga en el proceso objetivo - Error de Profiler CLR
- 16. ¿Cómo saber la versión de xdebug que tengo instalada?
- 17. Convierta un volcado de PostgreSQL en un volcado de MySQL
- 18. ¿.NET 4.5 introducirá una nueva versión del CLR?
- 19. ¿Cómo puedo encontrar la versión de un módulo Perl instalado?
- 20. ¿Cómo cambiar la versión de Powershell CLR cuando se ejecutan comandos de forma remota?
- 21. ¿Cómo puedo verificar la versión de una instancia de Liferay?
- 22. android cómo obtener el número de emergencia para llamar
- 23. Prototipo: cómo saber la versión prototype.js utilizando una función js?
- 24. Heroku, ¿Cómo saber la versión ruby del proyecto?
- 25. Obtenga la versión actual de .NET CLR en tiempo de ejecución?
- 26. Diferencia entre CLR 2.0 y CLR 4.0
- 27. Cómo ejecutar la aplicación CLR 2 como aplicación CLR 4
- 28. ¿Cómo puedo saber qué versión de JQuery estoy usando SIN usar JQuery?
- 29. ¿Existe una versión actualizada de "Escribir un código administrado más rápido: saber cuánto cuestan las cosas"?
- 30. ¿Cómo puedo saber si un objeto Java está en tenencia o espacio eden desde el volcado del heap?
Hola Brian, creo que este comando solo verifica en la máquina de depuración qué versión de CLR se utiliza, no verifica la versión de CRL de la máquina de error. ¿Algún comentario? Otro problema es que la versión está incompleta, no debería ser solo 50727, sino 50727.xxxx, como 50727.3053. – George2
@ George2: lm muestra el módulo que está cargado si está inspeccionando un archivo de volcado ya que es parte de la memoria que se descargó. En cuanto al número de versión, supongo que esto se puede leer desde el archivo y/o la versión del producto. –