示例 8:扩展 User-Mode 堆栈跟踪数据库

以下 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 检查 StackTraceDatabaseSizeInMB 注册表项的值(HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ImageFileName\StackTraceDatabaseSizeInMB)。

以下命令使用 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