Как я могу знать версию CLR дампа катастрофического отказа?

if (i == 1 || 2 || 4 || 8) всегда всегда верно.

if ((i == 1) || (2) || (4) || (8)) - это то, как компилятор читает его, поэтому он останавливается, по крайней мере, на 2, поскольку это правда.

Естественным решением будет if (i == 1 || i == 2 || i == 4 || i == 8) ....

9
задан Thomas Weller 21 March 2017 в 18:33
поделиться

3 ответа

В WinDbg: самый легкий путь состоит в том, чтобы использовать !eeversion команда, но если Вы хотите дополнительную информацию, можно использовать lm команда с v подробная опция для модуля этапа выполнения 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
14
ответ дан 4 December 2019 в 09:38
поделиться

Подробное описание в 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 | Windows | Окно инструментов Modules для отображения части этой информации.


Примеры для двух разных версий .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

.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
3
ответ дан 4 December 2019 в 09:38
поделиться

! Версия EEV должна указывать версию CLR.

5
ответ дан 4 December 2019 в 09:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: