2009-03-23 5 views
7

मेरे पास एक .NET अनुप्रयोग से एक मिनीडम्प क्रैश हो गया है। क्या विंडबग या किसी अन्य उपकरण का उपयोग कर गलती मशीन (जो क्रैश डंप उत्पन्न करता है) के सीएलआर संस्करण (उदाहरण के लिए mscorwks.dll का संस्करण) जानने का कोई तरीका है?मैं क्रैश डंप के सीएलआर संस्करण को कैसे जान सकता हूं?

उत्तर

14

WinDbg में: सबसे आसान तरीका है !eeversion आदेश का उपयोग करने के लिए है, लेकिन अगर आप अतिरिक्त जानकारी चाहते हैं आप क्रम मॉड्यूल mscorwks के लिए v वर्बोज़ विकल्प के साथ lm आदेश का उपयोग कर सकते हैं। यदि आप .NET 4 पर हैं तो रनटाइम को clr कहा जाता है, इसलिए उस स्थिति में आपको तदनुसार कमांड को बदलने की आवश्यकता है।

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 
+0

हाय ब्रायन, मुझे लगता है कि यह आदेश केवल डीबग मशीन पर जांचता है जो सीएलआर संस्करण का उपयोग किया जाता है, गलती मशीन के सीआरएल संस्करण की जांच नहीं करता है। कोई टिप्पणी? एक और मुद्दा यह है कि संस्करण अधूरा है, यह केवल 50727 नहीं होना चाहिए, लेकिन 50727.xxxx, 50727.3053 की तरह होना चाहिए। – George2

+0

@ जॉर्ज 2: एलएम मॉड्यूल दिखाता है जो लोड हो जाता है यदि आप डंप फ़ाइल का निरीक्षण कर रहे हैं क्योंकि यह डंप किए गए मेमोरी का हिस्सा है। संस्करण संख्या के लिए, मुझे लगता है कि इसे फ़ाइल और/या उत्पाद संस्करण से पढ़ा जा सकता है। –

3

जाओ 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 

वैकल्पिक रूप से, दृश्य स्टूडियो में डंप लोड और डीबग का उपयोग | विंडोज़ | इस जानकारी में से कुछ को प्रदर्शित करने के लिए मॉड्यूल टूलविंडो।


दो अलग नेट संस्करणों के लिए उदाहरण हैं, clr.dll के संस्करण की जानकारी का उपयोग:

नेट 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 

नेट 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 
+0

+1 क्योंकि यह विशिष्ट लोड किए बिना काम करता है (और इसलिए उस मशीन पर संभावित रूप से अनुपलब्ध) mscordacwks.dll/sos.dll आदि। मैंने संदर्भ के लिए दो और .NET संस्करणों के लिए उदाहरण भी जोड़े। –

4

! ईईवीर्सन को सीएलआर संस्करण देना चाहिए।

संबंधित मुद्दे