Debugging ein Deadlock mit Windbg ist !clrstack-Befehl

Wenn ich ausgestellt clrstack-Befehl, habe ich die folgende Ausgabe. Es ist der callstack, der eine blockierende Threads besitzt, einen deadlock und die Ergebnisse in einem deadlock. Ist, dass seine genaue Zweck? Gibt es irgendwelche anderen Zwecke (ohne Parameter). Wo kann ich weitere Informationen erhalten?

!clrstack
OS Thread Id: 0x1b2c (6956)
ESP       EIP     
0012f370 7c90e514 [HelperMethodFrame: 0012f370] System.Threading.Thread.SleepInternal(Int32)
0012f3c4 79299275 System.Threading.Thread.Sleep(Int32)
0012f3c8 00e0030f testlock.LockTest.Test()
0012f420 00e00146 testlock.Program.Main(System.String[])
0012f69c 79e71b4c [GCFrame: 0012f69c] 
  • Wie unten beantwortet, wird mit diesem Befehl wird einfach verwendet, um anzuzeigen, verwaltete Aufrufliste für den aktuellen thread-Kontext. Also, wenn Sie debugging-deadlock-Probleme, sollten Sie versuchen, kombinieren Sie es mit anderen Befehlen.
  • Das sieht nicht aus wie eine Sackgasse für mich. Der Stapel zeigt einen Anruf, um zu Schlafen. Für einen deadlock, sollten Sie erwarten, um zu sehen, ein Wait-Aufruf auf den stack.
InformationsquelleAutor Maanu | 2010-08-21
Schreibe einen Kommentar