私のexe-onceテストプログラムはCancelIo
を呼び出してブロックしますが、どのブロックがブロックしているのかを調べたいので、ブロックするとwindbgを使用してリモートからマシンに侵入し、見つけようとします。windbgカーネルデバッガからユーザスレッドコールスタックを調べるには?
イメージに黄色でマークされているように、私のEXEにはfffffa8013958b60
とfffffa8013aa1060
という2つのスレッドがあります。私はすでにfffffa8013aa1060
がCancelIo
を呼び出していることを知っています。
次に、スレッドの現在の呼び出しスタックを表示するにはどうすればいいですか?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
あなたがそのスレッドに切り替えS' ~~ '[0724]を試すことができ、あなたは、コールスタック – EdChum
を表示するには、通常どおり' kb'を行うことができます@EdChum WinDbgのヘルプは、「カーネルモードでは、あなたがコントロールすることはできませんと言いますスレッド識別子を使用してスレッドを作成します。 –