Debugging Tools for Windows

!gflag

!gflag 扩展设置或显示全局标志。

语法

!gflag [+|-Value 
!gflag {+|-Abbreviation 
!gflag -? 
!gflag 

参数

Value
指定一个32位的16进制值。如果不使用加号(+)或者减号(-),则将全局标志的对应位设置为新值。如果在数字前使用了加号(+),会将全局标志的一个或多个位设置为1。如果数字前使用减号(-),则将一个或多个位设置为0。
Abbreviation
指定单个全局标志。Abbreviation 是要设置为1(+)或者0 (-)的全局标志的三字母缩写。
-?
调试器命令窗口中显示该扩展命令的帮助文本,包括全局标志的缩写列表。

DLL

Windows 2000 Kdextx86.dll
Ntsdexts.dll
Windows XP和之后 Exts.dll

注释

如果没有指定任何参数,!gflag 显示当前的全局标志设置。

下面是Abbreviation 参数可用的缩写的表格。

名字 说明
0x00000001 "soe" 异常时停止。
0x00000002 "sls" 显示加载器快照(loader snaps)。
0x00000004 "dic" 调试初始命令。
0x00000008 "shg" 如果GUI停止响应(即hang)则停止。
0x00000010 "htc" 启用堆尾部检查。
0x00000020 "hfc" 启用堆释放检查。
0x00000040 "hpc" 启用堆参数检查。
0x00000080 "hvc" 调用时进行堆的确认。
0x00000100 "ptc" 启用内存池尾部(pool tail)检查。
0x00000200 "pfc" 启用内存池释放检查.
0x00000400 "ptg" 启用内存池标记(tagging)。
0x00000800 "htg" 启用堆标记。
0x00001000 "ust" 创建一个用户模式堆栈回溯DB。
0x00002000 "kst" 创建一个内核模式堆栈回溯DB。
0x00004000 "otl" 维护一个每种类型的对象列表。
0x00008000 "htd" 通过DLL启用堆标记。
0x00010000 "idp" 未使用。
0x00020000 "d32" 启用对Microsoft Win32子系统的调试。
0x00040000 "ksl" 启用对内核调试器符号的加载。
0x00080000 "dps" 禁止对内核堆栈分页。
0x00100000 "scb" 启用紧急系统中断(critical system breaks)。
0x00200000 "dhc" 禁止在堆释放时进行合并。
0x00400000 "ece" 启用关闭异常(close exception)。
0x00800000 "eel" 启用异常日志。
0x01000000 "eot" 启用对象句柄类型标记(object handle type tagging)。
0x02000000 "hpa" 将堆分配放到页面末尾(Put heap allocations at the end of pages)。
0x04000000 "dwl" 调试WINLOGON。
0x08000000 "ddp" 禁止内核模式的DbgPrintKdPrint 输出。
0x10000000 NULL 未使用。
0x20000000 NULL 未使用。
0x40000000 NULL 未使用。
0x80000000 "dpd" 禁止保护DLL验证(protected DLL verification)。

附加信息

也可以使用全局标志实用程序(Gflags.exe)来设置这些标志。

Build machine: CAPEBUILD