0

我发现sosex !mdt命令有一个很奇怪的问题。

我正在调查崩溃内存转储,并使用!mdt命令检查System.Web.EtwTrace类静态字段的值:

!mdt System.Web.EtwTrace

[s] _traceLevel : int

...

AppDomain '/LM/W3SVC/2/ROOT-1-130489393569613986' (00000000021a2d50): 0x0000000000000000

我决定使用!DumpClass SOS 命令仔细检查该值:

!DumpClass 000007feec7ddbb8

类名:System.Web.EtwTrace

……

共享静态 _traceLevel 6

看起来像 SOSEX 中的一个错误,有人遇到过同样的问题吗?

4

1 回答 1

1

无法快速设置 EtwTrace。它似乎至少适用于我自己的班级:

0:000> !name2ee EtwTraceDebug EtwTraceDebug.Program
Module:      001d2eac
Assembly:    EtwTraceDebug.exe
Token:       02000002
MethodTable: 001d37fc
EEClass:     001d1260
Name:        EtwTraceDebug.Program

0:000> !dumpclass 001d1260
Class Name:      EtwTraceDebug.Program
mdToken:         02000002
File:            C:\...\EtwTraceDebug.exe
Parent Class:    699b34f8
Module:          001d2eac
Method Table:    001d37fc
Vtable Slots:    4
Total Method Slots:  6
Class Attributes:    100000  
Transparency:        Critical
NumInstanceFields:   0
NumStaticFields:     1
      MT    Field   Offset                 Type VT     Attr    Value Name
69d83aa8  4000001       20         System.Int32  1   static        6 test

0:000> !mdt EtwTraceDebug.Program
EtwTraceDebug.Program
    [s]test: int
        AppDomain 'EtwTraceDebug.exe' (004b8280): 0x00000006

但是,这可能是特定于版本的。使用的版本:

WinDbg 6.2.9200.16384
SOS 4.0.30319.18444
SOSEX 4.5.0.783 (reported as 4.5.0.0, built Fri Mar 07 16:17:26 2014)
SOSEX 4.5.0.759 (reported as 4.5.0.0, built Mon Dec 02 16:43:57 2013)
SOSEX 4.5.0.721 (reported as 4.5.0.0, built Mon Nov 25 17:49:59 2013)
SOSEX 4.5.0.692 (reported as 4.5.0.0, built Wed Oct 03 16:57:42 2012)
于 2014-07-07T08:33:25.383 回答