Beispiel 8: Erweitern der User-Mode Stack Trace-Datenbank
Der folgende GFlags-Befehl erhöht die maximale Größe der Stapelüberwachungsdatenbank im Benutzermodus für myapp.exe, ein fiktives Programm, von 8 MB auf 24 MB.
Der Befehl verwendet den Parameter /i , um die Bilddatei anzugeben. Es verwendet den Parameter /tracedb , um die maximale Stapelüberwachungsdatenbankgröße und den Wert 24 festzulegen, um die Größe in Megabyte anzugeben. Der Befehl verwendet Dezimaleinheiten. (Hexadezimaleinheiten sind ungültig.)
gflags /i MyApp.exe /tracedb 24
Wie in der folgenden Fehlermeldung angegeben, schlägt dieser Befehl fehl, da das Flag Create user mode stack trace database (+ust) für die MyApp-Imagedatei nicht festgelegt ist. Sie können die Größe einer Ablaufverfolgungsdatenbank erst festlegen, wenn Sie eine datenbank erstellt haben.
Failed to set the trace database size for `MyApp.exe'
Mit den folgenden Befehlen wird der Fehler behoben. Der erste Befehl erstellt eine Ablaufverfolgungsdatenbank für myapp.exe, und der zweite Befehl legt die maximale Größe der Ablaufverfolgungsdatenbank auf 24 MB fest. Diese Befehle können nicht in einem einzelnen Befehl kombiniert werden. Die folgende Anzeige zeigt die Befehle und die Erfolgsmeldung von 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 kann die Größe der Stapelüberwachungsdatenbank im Benutzermodus ändern, wird aber nicht angezeigt. Um die Größe der Ablaufverfolgungsdatenbank anzuzeigen, verwenden Sie Registrierungs-APIs, Regedit oder Reg (reg.exe), ein Tool, das in Windows XP und Windows Server 2003 enthalten ist, um den Wert des StackTraceDatabaseSizeInMB-Registrierungseintrags (HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ImageFileName\StackTraceDatabaseSizeInMB) zu überprüfen.
(Eine Version von Reg ist in Windows XP enthalten, aber diese Version lässt die Schalter /v und /s im gleichen Befehl nicht zu.)
Der folgende Befehl verwendet Reg, um den Wert von StackTraceDatabaseSizeInMB abzufragen:
reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\MyApp.exe" /v StackTraceDatabaseSizeInMB
Als Antwort zeigt Reg den Wert von StackTraceDatabaseSizeInMB an, der bestätigt, dass der neue Wert 24 (0x18) festgelegt wurde. Dieser Wert wird wirksam, wenn Sie myapp.exe neu starten.
! REG.EXE VERSION 3.0
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\MyApp.exe
StackTraceDatabaseSizeInMB REG_DWORD 0x18
Tipp Geben Sie den Befehl reg query in Editor ein, und speichern Sie die Datei als tracedb.bat. Geben Sie anschließend TraceDb ein, um den Wert von StackTraceDatabaseSizeInMB anzuzeigen.