Sto esplorando un minidump di un processo ASP.NET con WinDbg, utilizzando SOS. Se vi elenco i thread gestiti vedo una normale lista alla ricerca di fili:Impossibile passare al thread gestito in WinDbg
0:000> !threads
ThreadCount: 8
UnstartedThread: 0
BackgroundThread: 8
PendingThread: 0
DeadThread: 0
Hosted Runtime: no
PreEmptive Lock
ID OSID ThreadOBJ State GC GC Alloc Context Domain Count APT Exception
XXXX 1 12bc 00000000001441f0 1808220 Disabled 0000000140b10fc8:0000000140b12f20 000000000017f6e0 0 Ukn (Threadpool Worker)
XXXX 2 1334 0000000000152f90 b220 Enabled 0000000000000000:0000000000000000 0000000000121b90 0 Ukn (Finalizer)
XXXX 3 138c 000000000017b100 80a220 Enabled 0000000000000000:0000000000000000 0000000000121b90 0 Ukn (Threadpool Completion Port)
XXXX 4 81c 000000000017eb40 1220 Enabled 0000000000000000:0000000000000000 0000000000121b90 0 Ukn
XXXX 5 5e4 00000000001bccd0 880a220 Enabled 0000000000000000:0000000000000000 0000000000121b90 0 Ukn (Threadpool Completion Port)
XXXX 6 11e4 0000000004bee280 180b220 Disabled 0000000000000000:0000000000000000 0000000000121b90 0 Ukn (Threadpool Worker)
XXXX 7 73c 0000000004c267e0 180b220 Disabled 0000000140b0f158:0000000140b10f20 000000000017f6e0 3 Ukn (Threadpool Worker) System.StackOverflowException (000000007fff0138) (nested exceptions)
XXXX 8 21c 00000000001ad1c0 180b220 Enabled 0000000000000000:0000000000000000 0000000000121b90 0 Ukn (Threadpool Worker)
Tuttavia, se si tenta di passare a infilare 7 (quella con l'eccezione), ottengo questo:
0:000> ~7s
^Illegal thread error in '~7s'
Ciò accade quando si tenta di passare a qualsiasi thread gestito. Non sono sicuro da dove procedere da qui. Quello che devo veramente fare è vedere la traccia dello stack da quel thread gestito.
Sì, il dump è stato eseguito durante un arresto anomalo (eseguendo 'ADPlus -crash'). Questo significa che non riesco a guardare quei fili? – andypaxo
Grazie per la tua chiara spiegazione! Ho appena provato di nuovo, usando '-fullonfirst', e è stato creato un dump completo. Sfortunatamente il risultato è stato lo stesso, con tutti i thread non disponibili. Ho anche provato ad ottenere l'eccezione direttamente dall'heap, ma il messaggio, la traccia dello stack, ecc. Erano tutti nulli. Hai idea del motivo per cui sono disponibili così poche informazioni? – andypaxo
@Brian, non dovresti usare 'gn' nel tuo comando sxe? –