示例 8:扩大用户模式堆栈跟踪数据库

以下 GFlags 命令将 myapp.exe(一种虚构程序)的用户模式堆栈跟踪数据库的最大大小从 8 MB 增加到 24 MB。

命令使用 /i 参数指定图像文件。 它使用 /tracedb 参数设置最大堆栈跟踪数据库大小,并使用值 24 来指示大小(以兆字节为单位)。 命令使用十进制单位。 (十六进制单位无效。)

gflags /i MyApp.exe /tracedb 24

如以下错误消息所示,此命令失败,因为未为 MyApp 映像文件设置 创建用户模式堆栈跟踪数据库 (+ust) 标志。 在创建跟踪数据库之前,无法设置跟踪数据库的大小。

Failed to set the trace database size for `MyApp.exe'

以下命令修复了此错误。 第一个命令创建用于myapp.exe的跟踪数据库,第二个命令将跟踪数据库的最大大小设置为 24 MB。 这些命令不能合并为单个命令。 以下显示显示了来自 GFlags 的命令和成功消息。

gflags /i MyApp.exe +ust

Current Registry Settings for MyApp.exe executable are: 00001000
    ust - Create user mode stack trace database

gflags /i MyApp.exe /tracedb 24

Trace database size for `MyApp.exe' set to 24 Mb.

GFlags 可以更改用户模式堆栈跟踪数据库的大小,但它不会显示它。 若要显示跟踪数据库大小,请使用注册表 API、Regedit 或 Reg (reg.exe) (Windows XP 和 Windows Server 2003 中包含的工具)检查 STACKTraceDatabaseSizeInMB 注册表项的值 (HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ImageFileName\StackTraceDatabaseSizeInMB) 。

(Reg 版本包含在 Windows XP 中,但该版本不允许在同一命令中使用 /v/s 开关。)

以下命令使用 Reg 查询 StackTraceDatabaseSizeInMB 的值:

reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\MyApp.exe" /v StackTraceDatabaseSizeInMB 

在响应中,Reg 显示 StackTraceDatabaseSizeInMB 的值,该值确认已设置新值 24 (0x18) 。 重新启动myapp.exe时,此值将生效。

! REG.EXE VERSION 3.0

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\MyApp.exe
    StackTraceDatabaseSizeInMB  REG_DWORD       0x18

提示 在记事本中键入 reg 查询 命令,然后将该文件另存为tracedb.bat。 此后,若要显示 StackTraceDatabaseSizeInMB 的值,只需键入 TraceDb 即可。