WinDbg / SOS: Как связать управляемые потоки из команды! Thread с экземплярами 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 <<
9
задан Chris Dickson 6 January 2011 в 16:37
поделиться