Zuerst finden die Methodentabelle der Taskscheduler
0:025> .loadby sos clr
0:025> .symfix c:\debug\symbols
0:025> !name2ee mscorlib.dll System.Threading.Tasks.TaskScheduler
Module: 000007feeea11000
Assembly: mscorlib.dll
Token: 000000000200052e
MethodTable: 000007feef0a8ab0
EEClass: 000007feeebde1a8
Name: System.Threading.Tasks.TaskScheduler
Dann werfen den Haufen einige Objekte dieser Art zu finden. Beachten Sie, dass ich String hier verwende, da ich keine Anwendung mit einem TaskScheduler zur Verfügung habe.
0:025> !dumpheap -mt <MethodTable>
Jetzt, da Sie einige Objekte haben, löschen Sie einfach einen von ihnen.
0:025> !do 00000000126ed548
Name: System.String
MethodTable: 000007feef0bda88
EEClass: 000007feeea16a08
Size: 34(0x22) bytes
File: C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
String: 100%
Fields:
MT Field Offset Type VT Attr Value Name
000007feef0c03d0 4000243 8 System.Int32 1 instance 4 m_stringLength
000007feef0bec38 4000244 c System.Char 1 instance 31 m_firstChar
000007feef0bda88 4000248 80 System.String 0 shared static Empty
Beachten Sie die shared
(statisch) Eigenschaft Empty
für den String. Sie sollten etwas ähnliches in TaskScheduler für die statische Eigenschaft Default
erhalten.
Wie Sie sehen können, können Sie nichts sehen. Deshalb brauchen Sie die SOSEX Erweiterung und tun Sie eine !mdt System.Threading.Tasks.TaskScheduler
.
0:025> !mdt System.String
System.String
[...]
[s]Empty: string
AppDomain 'Test.exe' (0000000001d73470): 0000000011fc1420[System.String] STRVAL=
@LievenKeersmaekers: Ich glaube, er spricht über die [Taskscheduler] (https://msdn.microsoft.com/en-US/library/system.threading.tasks.taskscheduler%28v=vs.110%29 .aspx) Klasse –
Ja, ich spreche von der TaskScheduler-Klasse. Speziell über die [TaskScheduler.Default-Eigenschaft] (https://msdn.microsoft.com/en-us/library/system.threading.tasks.taskscheduler.default (v = vs.110) .aspx) –
Ist es eine regelmäßige '.dmp'? Versuchen Sie es in Visual Studio zu öffnen. Bei ausreichend vielen Symbolen sollte der Debugger eine Übersicht über Tasks (Debug -> Windows -> Tasks) anzeigen können. Wenn es sich um einen partiellen Dump handelt oder Sie keine Symbole haben, funktioniert das nicht, aber es ist einen Versuch wert. –