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

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

该命令使用 /i 参数指定映像文件。 它使用 /traceb 参数设置最大堆栈跟踪数据库大小,并使用值 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\ImageFileNameStackTraceDatabaseSizeInMB\) 的值。

(XP 中包含 Reg Windows,但该版本不允许在同一个 command.) 中切换 /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 query 记事本,然后将文件另存为tracedb.bat。 此后,若要显示 StackTraceDatabaseSizeInMB 的值,只需键入 TraceDb