zoukankan      html  css  js  c++  java
  • 如何找出阻塞的线程正在等待哪个线程

    首先获取阻塞线程的调用栈

    0:002> kb
    ChildEBP RetAddr Args to Child
    00edfdd8 7c90e9c0 7c8025db 0000026c 00000000 ntdll!KiFastSystemCallRet
    00edfddc 7c8025db 0000026c 00000000 00000000 ntdll!ZwWaitForSingleObject+0xc
    00edfe40 7c802542 0000026c ffffffff 00000000 kernel32!WaitForSingleObjectEx+0xa8
    00edfe54 6640114a 0000026c
    ffffffff 00813190 kernel32!WaitForSingleObject+0x12
    [...]

    传递给WaitForSingleObject的第一个参数是该线程正在等待的线程的句柄(前提条件:我们正在等待一个线程,而不是另一个同步对象)。

    我可以通过!handle获取更多信息

    0:002> !handle 0000026c f
    Handle 0000026c
    Type Thread
    Attributes 0
    GrantedAccess 0x1f03ff:
    Delete,ReadControl,WriteDac,WriteOwner,Synch
    Terminate,Suspend,Alert,GetContext,SetContext,SetInfo,QueryInfo,SetToken,Impersonate,DirectImpersonate
    HandleCount 7
    PointerCount 10
    Name
    Object specific information
    Thread Id b94.ff4
    Priority 3
    Base Priority -16

    现在我们找到了线程b94.ff4

  • 相关阅读:
    生活有时候就是个戏本
    Android dp、dpi、px
    iOS10以后相机、相册等授权问题
    iOS圆角性能问题
    激荡10年,珍贵的毕业礼物
    Android API 指南
    Android 配置
    Android Error
    安卓 MIUI真机测试
    iOS 同一段文字显示不同颜色
  • 原文地址:https://www.cnblogs.com/yilang/p/12029510.html
Copyright © 2011-2022 走看看