windbg找出指定驱动所在的内核调用栈

背景

诸如Windows卡死或应用程序不明原因卡住等问题,如果我们怀疑是某个驱动导致,我们可以在dmp中查看此驱动所在的内核调用栈,看看是否此驱动调用了某些Windows同步函数而卡住。

方法

!stacks 2 [驱动名]
例如我怀疑是RegFilter.sys导致的Windows卡住,我可在系统dump中执行

0: kd> !stacks 2 RegFilter
Proc.Thread  .Thread  Ticks   ThreadState Blocker
                            [fffff80004246680 Idle]
                            [fffffa80c7b7b5c0 System]
   4.0001f4  fffffa80ca29f930 00075f1 Blocked    nt!KiSwapContext+0x7a
                                        nt!KiCommitThreadWait+0x1d2
                                        nt!KeWaitForSingleObject+0x1a3
                                        RegFilter+0x17d6d
                                        nt!PspSystemThreadStartup+0x194
                                        nt!KiStartSystemThread+0x16

                            [fffffa80ca530b00 smss.exe]

                            [fffffa80cb11bb00 csrss.exe]

                            [fffffa80cb50db00 wininit.exe]

                            [fffffa80cb35ab00 csrss.exe]

                            [fffffa80cb594b00 winlogon.exe]

                            [fffffa80cb59c060 services.exe]

                            [fffffa80cb5b1060 lsass.exe]

                            [fffffa80cb5b9530 lsm.exe]

                            [fffffa80cb53b060 svchost.exe]
 354.00034c  fffffa80cb62c060 002bca8 Blocked    nt!KiSwapContext+0x7a
                                        nt!KiCommitThreadWait+0x1d2
                                        nt!KeWaitForSingleObject+0x1a3
                                        nt!KiAcquireFastMutex+0x4e
                                        nt!ExAcquireFastMutex+0x45
                                        RegFilter+0x59cd
                                        RegFilter+0x8781
                                        RegFilter+0x9cec
                                        nt!CmpCallCallBacks+0x1c0
                                        nt! ?? ::NNGAKEGL::`string'+0x38bd0
                                        nt!KiSystemServiceCopyEnd+0x13
                                        +0x77069aca
……

留意此处的Blocked。线程fffffa80ca29f930fffffa80cb62c060 002bca8他们的调用栈就有RegFilter调用nt!ExAcquireFastMutex进而卡住。
下一步就联系RegFilter的开发者,反馈此类卡住在许多线程中存在是否正常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值