Partager via


Exemple 8 : Agrandissement de la base de données de traces de pile User-Mode

La commande GFlags suivante augmente la taille maximale de la base de données de trace de pile en mode utilisateur pour myapp.exe, un programme fictif, de 8 Mo à 24 Mo.

La commande utilise le paramètre /i pour spécifier le fichier image. Il utilise le paramètre /tracedb pour définir la taille maximale de la base de données de trace de pile et la valeur 24 pour indiquer la taille en mégaoctets. La commande utilise des unités décimales. (Les unités hexadécimales ne sont pas valides.)

gflags /i MyApp.exe /tracedb 24

Comme l’indique le message d’erreur suivant, cette commande échoue, car l’indicateur Créer une base de données de trace de pile en mode utilisateur (+ust) n’est pas défini pour le fichier image MyApp. Vous ne pouvez pas définir la taille d’une base de données de trace tant que vous n’en avez pas créé une.

Failed to set the trace database size for `MyApp.exe'

Les commandes suivantes corrigent l’erreur. La première commande crée une base de données de suivi pour myapp.exe et la deuxième commande définit la taille maximale de la base de données de trace sur 24 Mo. Ces commandes ne peuvent pas être combinées en une seule commande. L’affichage suivant montre les commandes et le message de réussite de 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 peut modifier la taille de la base de données de trace de pile en mode utilisateur, mais elle ne l’affiche pas. Pour afficher la taille de la base de données de suivi, utilisez les API de Registre, Regedit ou Reg (reg.exe), un outil inclus dans Windows XP et Windows Server 2003, pour case activée la valeur de l’entrée de Registre StackTraceDatabaseSizeInMB (HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ImageFileName\StackTraceDatabaseSizeInMB).

(Une version de Reg est incluse dans Windows XP, mais cette version n’autorise pas les commutateurs /v et /s dans la même commande.)

La commande suivante utilise Reg pour interroger la valeur de StackTraceDatabaseSizeInMB :

reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\MyApp.exe" /v StackTraceDatabaseSizeInMB 

En réponse, Reg affiche la valeur de StackTraceDatabaseSizeInMB, ce qui confirme que la nouvelle valeur, 24 (0x18), a été définie. Cette valeur devient effective lorsque vous redémarrez 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

Pointe Tapez la commande reg query dans le Bloc-notes, puis enregistrez le fichier en tant que tracedb.bat. Par la suite, pour afficher la valeur de StackTraceDatabaseSizeInMB, tapez simplement TraceDb.