[WinDBG 技巧] 列举所有Handle(句柄)以及查看Handle 信息

简介:
WinDBG的 !handle 命令可以让你方便调试句柄(handle)。
查看进程内所有句柄, 输入命令行
0:014> !handle
Handle 4
  Type          Directory
Handle 8
  Type          Process
Handle c
  Type          Key
Handle 10
  Type          Mutant
Handle 14
  Type          ALPC Port
Handle 18
  Type          Key
Handle 1c
  Type          Event
Handle 20
  Type          Key
 ... (省略)
Handle 7e0
  Type          Mutant
392 Handles
Type            Count
None            17
Event           134
Section         47
File            35
Directory       3
Mutant          34
WindowStation   2
Semaphore       24
Key             47
Token           1
Process         3
Thread          27
Desktop         1
IoCompletion    4
Timer           5
Job             1
KeyedEvent      1
TpWorkerFactory 6

从WinDBG输出结果我们可以看到所有句柄的类型和值,以及统计信息(一共392个handle,其中有35个文件句柄,47个注册表句柄 .... )。
如果想查看某个句柄的详细信息, 可以用命令:
0:014> !handle 0x5c8 f
Handle 5c8
  Type          Key
  Attributes    0
  GrantedAccess 0x20019:
         ReadControl
         QueryValue,EnumSubKey,Notify
  HandleCount   2
  PointerCount  3
  Name          \REGISTRY\USER\S-1-5-21-2127521184-1604012920-1887927527-2966534\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
  Object Specific Information
    Key last write time:  16:52:14. 5/20/2009
    Key name FileExts
0x5c8 是句柄的值, 参数f 表示显示全部信息。 我们可以看到句柄0x5c8 是注册表句柄,路径为\REGISTRY\USER\S-1-5-21-2127521184-1604012920-1887927527-2966534\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts。
值得一提的是,WinDBG 还提供了!htrace 命令,可以很方便来用检查句柄泄露(Handle Leak), 下次再写篇blog 专门介绍 !htrace 。

 本文转自 陈本峰 51CTO博客,原文链接:http://blog.51cto.com/wingeek/274066,如需转载请自行联系原作者


相关文章
|
API C# Windows
C#实现操作Windows窗口句柄:常用窗口句柄相关API、Winform中句柄属性和Process的MainWindowHandle问题【窗口句柄总结之三】
本篇主要介绍一些与窗口句柄相关的一些API,比如设置窗口状态、当前激活的窗口、窗口客户区的大小、鼠标位置、禁用控件等,以及介绍Winform中的句柄属性,便于直接获取控件或窗体句柄,以及不推荐...
3640 0
C#实现操作Windows窗口句柄:常用窗口句柄相关API、Winform中句柄属性和Process的MainWindowHandle问题【窗口句柄总结之三】
|
Linux
Linux系统调用六、stat函数与 struct stat 文件信息结构体深度刨析(三)
Linux系统调用六、stat函数与 struct stat 文件信息结构体深度刨析
381 0
Linux系统调用六、stat函数与 struct stat 文件信息结构体深度刨析(三)
|
NoSQL Linux 开发工具
Linux系统调用六、stat函数与 struct stat 文件信息结构体深度刨析(二)
Linux系统调用六、stat函数与 struct stat 文件信息结构体深度刨析
255 0
Linux系统调用六、stat函数与 struct stat 文件信息结构体深度刨析(二)
|
Linux
Linux系统调用六、stat函数与 struct stat 文件信息结构体深度刨析(一)
Linux系统调用六、stat函数与 struct stat 文件信息结构体深度刨析
266 0
Linux系统调用六、stat函数与 struct stat 文件信息结构体深度刨析(一)
|
C++
DLL调用异常:The value of ESP was not properly
DLL调用异常:The value of ESP was not properly
98 0
实例演示相机的OnImageRender和Clear Flags清理标识(Unity3D)
无论多基础、简单的知识,只要不会,就是难。。 这次的总结主要与相机上的Clear Flags及OnImageRender函数有关Clear Flags对于这个选项,我是这么理解的:每一个相机在开始绘制时,都需要对当前RenderBuffer中的颜色缓冲区(ColorBuffer)和深度缓冲区(Z-Buffer)进行是否清除的操作,这个选项控制了清除及清除后的内容。

热门文章

最新文章