示例 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 即可。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈