Mein exe-einmal Testprogramm ruft CancelIo
auf und es blockiert, ich möchte untersuchen, in welcher Funktion es blockiert, also, wenn es blockiert, benutze ich windbg, um in die Maschine zu brechen, entfernt, und versuchen, es herauszufinden .Wie untersucht man Benutzer Thread Aufrufstack von Windbg Kernel Debugger?
Wie im Bild gelb markiert, hat meine EXE zwei Threads, fffffa8013958b60
und fffffa8013aa1060
. Ich weiß bereits, dass fffffa8013aa1060
derjenige ist, der CancelIo
aufruft.
Dann, wie zeige ich aktuelle Aufrufliste des Threads fffffa8013aa1060
?
1: kd> !process fffffa8014c25170 2
PROCESS fffffa8014c25170
SessionId: 1 Cid: 0ad4 Peb: 7fffffdf000 ParentCid: 07b8
DirBase: 2b451000 ObjectTable: fffff8a002e61620 HandleCount: 12.
Image: exe-once.exe
THREAD fffffa8013958b60 Cid 0ad4.0724 Teb: 000007fffffdd000 Win32Thread: 0000000000000000 WAIT: (UserRequest) UserMode Non-Alertable
fffffa8013aa1060 Thread
THREAD fffffa8013aa1060 Cid 0ad4.01e8 Teb: 000007fffffdb000 Win32Thread: 0000000000000000 WAIT: (DelayExecution) KernelMode Non-Alertable
fffffa8013aa1420 Semaphore Limit 0x1
können Sie versuchen, '~~ [0724] s' zu diesem Thread zu wechseln, können Sie dann tun' kb' als normal den Call-Stack – EdChum
@EdChum WinDbg help „im Kernel-Modus sagt angezeigt werden, können Sie nicht kontrollieren Threads mithilfe von Thread-IDs. " –