首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查来自windbg内核调试器的用户线程调用堆栈?

如何检查来自windbg内核调试器的用户线程调用堆栈?
EN

Stack Overflow用户
提问于 2016-07-12 08:29:16
回答 1查看 1.3K关注 0票数 1

我的exe-一旦测试程序调用CancelIo和它阻塞,我想调查它在哪个函数中被阻塞,所以,当它阻塞时,我使用windbg远程进入机器,并试图找到它。

与图像中标记为黄色的一样,我的EXE有两个线程,fffffa8013958b60fffffa8013aa1060。我已经知道fffffa8013aa1060是打电话给CancelIo的那个人。

那么,如何显示线程fffffa8013aa1060**?**的当前调用堆栈?

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-12 08:33:19

尝试以下命令序列

代码语言:javascript
复制
.process /i fffffa8014c25170 
g
.thread fffffa8013aa1060
.reload /user
k

摘自WinDbg文档:

/i .指定要非法地调试进程。这种调试意味着目标计算机的操作系统实际上使指定的进程处于活动状态。..。如果使用/i,则必须使用g (Go)命令来执行目标。几秒钟后,目标重新进入调试器,指定的进程处于活动状态,并用于进程上下文。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38323635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档