範例 8:放大User-Mode堆疊追蹤資料庫
下列 GFlags 命令會將myapp.exe使用者模式堆疊追蹤資料庫的大小上限,從 8 MB 增加到 24 MB。
此命令會使用 /i 參數來指定影像檔案。 它會使用 /tracedb 參數來設定堆疊追蹤資料庫大小上限和值 24,以 MB 表示大小。 此命令會使用小數單位。 (十六進位單位無效。)
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) 。
(Windows XP 中包含 Reg 版本,但該版本不允許相同命令中的 /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即可。