Come determinare quali sono i thread .NET in primo piano da WinDBG? Usando il comando! Threads l'estensione SOS ci dice il conteggio dei thread in primo piano ma non quelli.Come determinare quali sono i thread .NET in primo piano da WinDBG?
risposta
Il flag di stato nell'output !threads
contiene molte informazioni. Se il flag 0x00000200
è impostato, il thread è un thread in background.
In SOS per .NET 4 e PSSCOR2, è disponibile il comando !threadstate
, che elencherà i testi per un determinato valore di contrassegno. Se non si dispone di questo, è disponibile una panoramica dei flag nel codice sorgente del rotore e nelle applicazioni Debug .NET 2.0 di John Robbins.
È possibile utilizzare i valori dello stato del filo forniti in questo link e scoprire se un thread è un thread in background oppure no.
TS_Background 0x00000200 thread è un filo sfondo
+1 Non conoscevo quel link. Grazie. –
Netext 's comando !wthreads
mostra il tipo e lo stato informazioni:
0:011> !wthreads
Id OSId Address Domain Alloc Start:End COM GC Type Locks Type/Status Last Exception
1 1854 0074f580 00748cd0 02c19308:02c1b2e8 STA Preemptive 0
2 1890 0075ab18 00748cd0 00000000:00000000 MTA Preemptive 0 Background|Finalizer
3 1bac 080ecb98 00748cd0 00000000:00000000 MTA Preemptive 0 Background|Worker
4 ---- 08106068 00748cd0 00000000:00000000 MTA Preemptive 0 Worker|Terminated
5 ---- 0810e988 00748cd0 00000000:00000000 MTA Preemptive 0 Worker|Terminated
6 ---- 080eb1d0 00748cd0 00000000:00000000 MTA Preemptive 0 Worker|Terminated
7 081c 080fcb48 00748cd0 00000000:00000000 MTA Preemptive 0 Background|IOCPort
Grazie mille! Sarà bello vedere tutti i flag dello stato del thread dall'estensione SOS. – Costel