У меня произошел сбой минидампа из приложения .NET. Есть ли способ узнать версию CLR (например, версию mscorwks.dll) машины сбоя (которая создает аварийный дамп) с помощью Windbg или какого-либо другого инструмента?
Как узнать версию CLR аварийного дампа?
Ответы (3)
В WinDbg: проще всего использовать команду !eeversion
, но если вам нужна дополнительная информация, вы можете использовать команду lm
с опцией v
verbose для модуля среды выполнения mscorwks
. Если вы используете .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
person
Brian Rasmussen
schedule
23.03.2009
Привет, Брайан, я думаю, что эта команда проверяет только на отладочной машине, какая версия CLR используется, а не проверяет версию CRL на неисправной машине. Любые комментарии? Другой вопрос, версия неполная, должна быть не только 50727, но и 50727.xxxx, например 50727.3053.
- person George2; 24.03.2009
@George2: я покажу загруженный модуль, если вы просматриваете файл дампа, так как это часть памяти, которая была сброшена. Что касается номера версии, я бы предположил, что его можно прочитать из версии файла и/или продукта.
- person Brian Rasmussen; 18.08.2010
!EEVersion должен указать версию CLR.
person
Naveen
schedule
27.10.2009
Перейдите к подробному описанию в 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
Либо загрузите дамп в Visual Studio и используйте Debug | Окна | Инструментальное окно модулей для отображения части этой информации.
Примеры для двух разных версий .Net с использованием информации о версии 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
.Нет 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
person
sean e
schedule
11.05.2009
+1, так как это работает без загрузки конкретных (и, следовательно, на этой машине потенциально недоступных) mscordacwks.dll / sos.dll и т. д. Я также добавил примеры еще для двух версий .Net для справки.
- person Evgeniy Berezovsky; 12.08.2015
Вам нужна информация только для одного модуля: lm vm clr
- person Der_Meister; 01.11.2019