Freigeben über


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.