でコマンドをどのように管理するスレッドを相関させるために、スレッド、私は次のようしている:のWinDbg/SOS:!System.Threading.ThreadインスタンスのWinDbgとSOSを使用して
0:011> !threads
ThreadCount: 7
UnstartedThread: 0
BackgroundThread: 4
PendingThread: 0
DeadThread: 2
PreEmptive GC Alloc Lock
ID ThreadOBJ State GC Context Domain Count APT Exception
0 618 0015b350 20 Enabled 00000000:00000000 0017b720 0 Ukn
2 624 0016f508 b220 Enabled 00000000:00000000 0017b720 0 MTA (Finalizer)
9 e48 001c13d0 1220 Enabled 00000000:00000000 0017b720 0 Ukn
10 e8c 048c6a40 1800220 Enabled 00c296a8:00c2ab44 0017b720 0 MTA (Threadpool Worker) System.NullReferenceException
XXX 0 00224138 1820 Enabled 00000000:00000000 0017b720 0 MTA
XXX 0 001d5b50 1820 Enabled 00000000:00000000 0017b720 0 Ukn
11 564 00166318 1800220 Enabled 00c2cf30:00c2eb44 0017b720 0 MTA (Threadpool Worker)
0:011> !dumpheap -type System.Threading.Thread
Address MT Size
00b16478 79bba7a4 60
00b41a7c 79bca7ac 28
00b41a98 79bba7a4 60
00b41ecc 79bba7a4 60
00bf1e20 79bca7ac 28
00bf1e3c 79bba7a4 60
00c03b34 79bca7ac 28
00c03b50 79bba7a4 60
total 8 objects
Statistics:
MT Count TotalSize Class Name
79bca7ac 3 84 System.Threading.ThreadStart
79bba7a4 5 300 System.Threading.Thread
Total 8 objects
私の質問は:どのように私はどのインスタンスを決定することができますヒープ上のSystem.Threading.Threadは、実際に実行されている管理スレッドのどれに対応しています。
更新日: これは.NET 1.1アプリケーションのデバッグです。このバージョンで 私がこのような出力を得る!DumpObj
0:000> !dumpobj 00b16478
Name: System.Threading.Thread
MethodTable 0x79bba7a4
EEClass 0x79bba9d4
Size 60(0x3c) bytes
mdToken: 020000ec (c:\windows\microsoft.net\framework\v1.1.4322\mscorlib.dll)
FieldDesc*: 79bbaa38
MT Field Offset Type Attr Value Name
79bba7a4 4000337 4 CLASS instance 00000000 m_Context
79bba7a4 4000338 8 CLASS instance 00000000 m_LogicalCallContext
79bba7a4 4000339 c CLASS instance 00000000 m_IllogicalCallContext
79bba7a4 400033a 10 CLASS instance 00000000 m_Name
79bba7a4 400033b 14 CLASS instance 00000000 m_ExceptionStateInfo
79bba7a4 400033c 18 CLASS instance 00000000 m_Delegate
79bba7a4 400033d 1c CLASS instance 00000000 m_PrincipalSlot
79bba7a4 400033e 20 CLASS instance 00000000 m_ThreadStaticsBuckets
79bba7a4 400033f 24 CLASS instance 00000000 m_ThreadStaticsBits
79bba7a4 4000340 28 CLASS instance 00000000 m_CurrentCulture
79bba7a4 4000341 2c CLASS instance 00000000 m_CurrentUICulture
79bba7a4 4000342 30 System.Int32 instance 2 m_Priority
79bba7a4 4000343 34 System.Int32 instance 1422160 DONT_USE_InternalThread
79bba7a4 4000344 0 CLASS shared static m_LocalDataStoreMgr
>> Domain:Value 0017b720:00b162e8 <<
お返事ありがとうございます。私はそれがそれのようなものでなければならないと思った。しかし、古い.NET 1.1アプリケーションをデバッグしていて、Thread 1.1にはm_ManagedThreadIDフィールドがありません。 –