WinDbg常用命令系列---!handle
!handle
简介
!handle扩展显示有关目标系统中一个或所有进程拥有的一个或多个句柄的信息。
使用形式
- 用户模式
!handle [Handle [UMFlags [TypeName]]]
!handle -? - 内核模式
!handle [Handle [KMFlags [Process [TypeName]]]]
参数
- Handle
指定要显示的句柄的索引。如果Handle为-1或省略此参数,调试器将显示与当前进程关联的所有句柄的数据。如果句柄为0,调试器将显示所有句柄的数据。 - UMFlags
(仅限用户模式)指定显示内容。此参数可以是以下任何位值的总和。(默认值为0x1。)|
位 0 (0x1)
显示句柄类型信息。位 1 (0x2)
显示基本句柄信息。位 2 (0x4)
显示句柄名称信息。位 3 (0x8)
显示特定于对象的句柄信息 (如果可用)。 - KMFlags
(仅限内核模式)指定显示内容。此参数可以是以下任何位值的总和。(默认值为0x3。)
位 0 (0x1)
显示基本句柄信息。位 1 (0x2)
显示有关对象的信息。位 2 (0x4)
显示可用的句柄项。 如果未设置此位并且省略了句柄或将其设置为零, 则显示的句柄列表不包含可用的句柄。 如果handle指定单个自由句柄, 则即使未设置此位, 也会显示该句柄。位 4 (0x10)
显示来自内核句柄表而不是当前进程的句柄。位 5 (0x20)
将句柄解释为线程 ID 或进程 ID, 并显示有关相应内核对象的信息。 - Process
(仅限内核模式)指定进程。您可以使用进程ID或进程对象的十六进制地址。此参数必须引用目标系统上当前正在运行的进程。如果此参数为-1或忽略此参数,则使用当前进程。如果此参数为0,则显示所有进程的句柄信息。 - TypeName
指定要检查的句柄的类型。 只显示匹配此类型的句柄。 TypeName区分大小写。 有效类型包括事件、节、文件、端口、目录、SymbolicLink、变化、Windowstation 时出错、信号量、密钥、令牌、进程、线程、桌面、IoCompletion、计时器、作业和 WaitablePort。 - -?
(仅用户模式)在调试器命令窗口中显示此扩展的一些帮助文本。
支持环境
|
Windows 2000 |
Kdextx86 Ntsdexts Uext. .dll |
|
Windows XP 和更高版本 |
Kdexts Ntsdexts Uext. .dll |
备注
你可以在用户模式和内核模式实时调试过程中使用!handle扩展。 你还可以在内核模式转储文件中使用此扩展。 但是, 你不能对用户模式转储文件使用此扩展, 除非你专门使用处理信息创建它们。 (可以使用dump/mh (创建转储文件) 命令创建此类转储文件。)在实时用户模式调试过程中, 可以使用closehandle (关闭句柄) 命令关闭一个或多个句柄。
0:000> !handle
Handle 4
Type Section
Handle 8
Type Event
Handle c
Type Event
Handle 10
Type Event
Handle 14
Type Directory
Handle 5c
Type File
6 Handles
Type Count
Event 3
Section 1
File 1
Directory 1
以下命令显示有关句柄0x8 的详细信息
0:000> !handle 8 f
Handle 8
Type Event
Attributes 0
GrantedAccess 0x100003:
Synch
QueryState,ModifyState
HandleCount 2
PointerCount 3
Name <none>
Object Specific Information
Event Type Auto Reset
Event is Waiting
以下示例是 ! handle的内核模式示例。 以下命令将列出所有句柄, 包括自由句柄。
kd> !handle 0 4
processor number 0
PROCESS 80559800 SessionId: 0 Cid: 0000 Peb: 00000000 ParentCid: 0000
DirBase: 00039000 ObjectTable: e1000d60 TableSize: 380.
Image: Idle
New version of handle table at e1002000 with 380 Entries in use
0000: free handle, Entry address e1002000, Next Entry fffffffe
0004: Object: 80ed5238 GrantedAccess: 001f0fff
0008: Object: 80ed46b8 GrantedAccess: 00000000
000c: Object: e1281d00 GrantedAccess: 000f003f
0010: Object: e1013658 GrantedAccess: 00000000
......
0168: Object: ffb6c748 GrantedAccess: 00000003 (Protected)
016c: Object: ff811f90 GrantedAccess: 0012008b
0170: free handle, Entry address e10022e0, Next Entry 00000458
0174: Object: 80dfd5c8 GrantedAccess: 001f01ff
......
以下命令显示有关内核句柄表中的句柄0x14 的详细信息。
kd> !handle 14 13
processor number 0
PROCESS 80559800 SessionId: 0 Cid: 0000 Peb: 00000000 ParentCid: 0000
DirBase: 00039000 ObjectTable: e1000d60 TableSize: 380.
Image: Idle
Kernel New version of handle table at e1002000 with 380 Entries in use
0014: Object: e12751d0 GrantedAccess: 0002001f
Object: e12751d0 Type: (80ec8db8) Key
ObjectHeader: e12751b8
HandleCount: 1 PointerCount: 1
Directory Object: 00000000 Name: \REGISTRY\MACHINE\SYSTEM\CONTROLSET001\CONTROL\SESSION MANAGER\EXECUTIVE
以下命令显示有关所有进程中的 Section 对象的所有句柄的信息。
!handle 0 3 0 Section
...
PROCESS fffffa8004f48940
SessionId: none Cid: 0138 Peb: 7f6639bf000 ParentCid: 0004
DirBase: 10cb74000 ObjectTable: fffff8a00066f700 HandleCount: 39.
Image: smss.exe
Handle table at fffff8a00066f700 with 39 entries in use
0040: Object: fffff8a000633f00 GrantedAccess: 00000006 (Inherit) Entry: fffff8a000670100
Object: fffff8a000633f00 Type: (fffffa80035fef20) Section
ObjectHeader: fffff8a000633ed0 (new version)
HandleCount: 1 PointerCount: 262144
WinDbg常用命令系列---!handle的更多相关文章
- WinDbg常用命令系列---显示段选择器dg、链接列表dl和字符串ds/dS
dg (Display Selector) dg命令显示指定选择器的段描述符. dg FirstSelector [LastSelector] 参数: FirstSelector指定要显示的第一个选择 ...
- WinDbg常用命令系列---!uniqstack
简介 这个!uniqstack扩展扩展显示的所有线程的堆栈的所有当前进程,不包括显示为具有重复项的堆栈中. 使用形式 !uniqstack [ -b | -v | -p ] [ -n ] 参数 -b将 ...
- WinDbg常用命令系列---.cmdtree
.cmdtree 简介 使用形式 .cmdtree cmdfile 参数 cmdfile命令文件,包含多个你需要的命令.必须是一个文本档 使用步骤 1.使用命令创建文本文件test.wl,使用以下示例 ...
- WinDbg常用命令系列---.write_cmd_hist (写命令历史记录)
.write_cmd_hist 简介 .write_cmd_hist命令将调试器命令窗口的整个历史记录写入文件. 使用形式 .write_cmd_hist Filename 参数 Filename指定 ...
- WinDbg常用命令系列---!heap
!heap 简介 !heap扩展显示堆使用信息.控制堆管理器中的断点.检测泄漏的堆块.搜索堆块或显示页堆信息.此扩展支持段堆和NT堆.使用!heap没有参数列出所有堆及其类型的堆. 使用形式 !hea ...
- WinDbg常用命令系列---!htrace
!htrace 简介 !htrace扩展显示一个或多个句柄的堆栈跟踪信息. 使用形式 用户模式!htrace [Handle [Max_Traces]] !htrace -enable [Max_Tr ...
- WinDbg常用命令系列---源代码操作相关命令
lsf, lsf- (Load or Unload Source File) lsf和lsf-命令加载或卸载源文件. lsf Filename lsf- Filename 参数: Filename指定 ...
- WinDbg常用命令系列---单步执行p*
p (Step) p命令执行单个指令或源代码行,并可选地显示所有寄存器和标志的结果值.当子例程调用或中断发生时,它们被视为单个步骤. 用户模式: [~Thread] p[r] [= StartAddr ...
- WinDbg常用命令系列---断点操作b*
ba (Break on Access) ba命令设置处理器断点(通常称为数据断点,不太准确).此断点在访问指定内存时触发. 用户模式下 [~Thread] ba[ID] Access Size [O ...
随机推荐
- Mysql表字段命令alter add
alter add命令用来增加表的字段. alter add命令格式:alter table 表名 add字段 类型 其他; 例如,在表MyClass中添加了一个字段passtest,类型为int(4 ...
- The underlying connection was closed: An unexpected error occurred on a rece
服务器问题,在后台访问外网了,特别是https的网站,容易出这个问题. 修改服务器配置,或修改代码解决.
- spring boot 分布式锁组件 spring-boot-klock-starter
基于redis的分布式锁spring-boot starter组件,使得项目拥有分布式锁能力变得异常简单,支持spring boot,和spirng mvc等spring相关项目 快速开始 sprin ...
- MySQL数据库汇总
-- mysql的最大连接数:默认为 100 -- mysql的增删改查 -- mysql统计各个字段(case when 用法 注:也可以使用其他的) select (case when ...
- IDEA自动清理优化import包
IDEA自动清理优化import包 直接上图: Add unambiguous imports on the fly:快速添加明确的导入. Optimize imports on the fly:快速 ...
- localStorage&sessionStorage&Cookie
localStorage.sessionStorage.Cookie三者区别如下:
- 关于定义变量名为"name"的坑!!!
昨天下午没有什么工作可做,闲来无事就上博客园看看了,有个问题让我一直很纳闷. 直接上代码吧: 再用表达式创建函数时遇到的问题,这里的代码按照正常逻辑只有那个在变量定义后面的函数执行打印的值才是&quo ...
- 嵌入式 vlc从接收到数据流到播放视频的过程分析(经典)
个人整理: Vlc流播放流程 vlc源码目录树: 目录名称 说明 bindings Java, CIL 和Python绑定 doc 帮助文档 (不是更新的) extras 另叙. include VL ...
- React-Native控件的生命周期
React-Native控件的生命周期
- Synchronized可重入锁通俗易懂的简单分析
可重入锁概念: 当一个线程得到一个对象锁后,再次请求此对象时时可以再次得到该对象的锁的,这也证明synchronized方法/块的内部调用本类的其他synchronized方法/块时,时永远可以得到锁 ...