我的exe-一旦测试程序调用CancelIo和它阻塞,我想调查它在哪个函数中被阻塞,所以,当它阻塞时,我使用windbg远程进入机器,并试图找到它。
与图像中标记为黄色的一样,我的EXE有两个线程,fffffa8013958b60和fffffa8013aa1060。我已经知道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发布于 2016-07-12 08:33:19
尝试以下命令序列
.process /i fffffa8014c25170
g
.thread fffffa8013aa1060
.reload /user
k摘自WinDbg文档:
/i .指定要非法地调试进程。这种调试意味着目标计算机的操作系统实际上使指定的进程处于活动状态。..。如果使用/i,则必须使用g (Go)命令来执行目标。几秒钟后,目标重新进入调试器,指定的进程处于活动状态,并用于进程上下文。
https://stackoverflow.com/questions/38323635
复制相似问题