J'ai un écrasement minidump d'une application .NET. Est-il possible de connaître la version CLR (par exemple, la version de mscorwks.dll) de la machine d'erreur (qui génère l'image de vidage sur incident) à l'aide de Windbg ou d'un autre outil?Comment puis-je connaître la version CLR d'un vidage sur incident?
Répondre
En WinDbg: le plus simple est d'utiliser la commande !eeversion
, mais si vous voulez des informations supplémentaires, vous pouvez utiliser la commande lm
avec l'option verbose v
pour le module d'exécution mscorwks
. Si vous utilisez .NET 4, l'exécution est appelée clr
, vous devez donc modifier la commande en conséquence.
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
Go verbose dans 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
Vous pouvez également charger la décharge dans Visual Studio et utilisez le débogage | Windows | Modules toolwindow pour afficher certaines de ces informations.
Exemples pour deux différentes versions .Net, en utilisant les informations de version 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 car cela fonctionne sans charger le mscordacwks.dll/sos.dll spécifique spécifique (et donc sur cette machine potentiellement indisponible) etc. J'ai également ajouté des exemples pour deux versions .Net supplémentaires pour référence. –
EEVersion! devrait donner la version CLR.
- 1. Versions de module dans un vidage sur incident
- 2. Comment faire pour obtenir un vidage sur incident sur Handled Exception?
- 3. Connaître la version asp.net pour le code?
- 4. Recherche des fichiers de vidage sur incident pour une application C#
- 5. Comment puis-je connaître la version de TinyMCE que j'utilise?
- 6. Pouvez-vous exécuter un binaire .NET version 3 sur une installation CLR version 2?
- 7. développement fonctionnel sur le CLR
- 8. Est-ce que les vidages sur incident adplus/cdb fonctionnent toujours sur Vista 64 Ultimate?
- 9. comment puis-je connaître la version de mon dossier de travail?
- 10. Comment connaître la position ordinale d'un ItemTemplate
- 11. Quel est le GC parallèle standard appelé dans les vidages sur incident JVM?
- 12. Est-ce que .Net 4.0 inclura un nouveau CLR ou gardera avec la version 2.0
- 13. Comment puis-je travailler simultanément sur la version 1.1 et la version 2.0?
- 14. Comment détecter la version linguistique de Windows
- 15. Comment puis-je connaître la bande passante de l'utilisateur pour fournir la meilleure version possible de mon application Web?
- 16. comment vérifier MS Office version installée sur les machines
- 17. Comment connaître les informations sur les images dans l'application wpf
- 18. Comment obtenir vidage binaire de la mémoire SQLite db
- 19. Comment limiter le vidage de la base de données sur le disque?
- 20. comment transformer CLR en EXE
- 21. La commande de vidage windbg échoue avec l'erreur 0x8007012b
- 22. Contrôler la mémoire réservée CLR SQL Server
- 23. Java URLConnection: comment connaître la taille d'un fichier web?
- 24. Compatibilité C# 4 et CLR
- 25. tables de vidage mysql seulement
- 26. Comment charger CLR dans le processus
- 27. Comment utiliser la même bibliothèque pour Silverlight et CLR
- 28. Performances de la version HTTP sur les pare-feu
- 29. Aide pour le vidage de la pile du serveur SQL
- 30. Comment connaître la taille des rappels dans ASP.NET AJAX?
Salut Brian, je pense que cette commande vérifie seulement sur la machine de débogage quelle version de CLR est utilisée, ne vérifiant pas sur la version CRL de la machine fautive. Des commentaires? Un autre problème est, la version est incomplète, il ne devrait pas être seulement 50727, mais 50727.xxxx, comme 50727.3053. – George2
@ George2: lm affiche le module qui est chargé si vous inspectez un fichier de vidage car il fait partie de la mémoire qui a été sauvegardée. En ce qui concerne le numéro de version, je suppose que cela peut être lu à partir du fichier et/ou de la version du produit. –