Partilhar via


Exemplo 8: Expandindo a base de dados de rastreamento da pilha de User-Mode

O comando GFlags a seguir aumenta o tamanho máximo da base de dados de rastreamento da pilha em modo de utilizador para myapp.exe, um programa fictício, de 8 MB para 24 MB.

O comando usa o parâmetro /i para especificar o arquivo de imagem. Usa o parâmetro /tracedb para definir o tamanho máximo do banco de dados de rastreio da pilha e o valor 24 para indicar o tamanho em megabytes. O comando usa unidades decimais. (As unidades hexadecimais não são válidas.)

gflags /i MyApp.exe /tracedb 24

Como a mensagem de erro a seguir indica, este comando falha porque o sinalizador Create user mode stack trace database (+ust) não foi ativado para o arquivo de imagem MyApp. Não é possível definir o tamanho de um banco de dados de rastreamento até criar um.

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

Os comandos a seguir corrigem o erro. O primeiro comando cria um banco de dados de rastreamento para myapp.exe e o segundo comando define o tamanho máximo do banco de dados de rastreamento para 24 MB. Esses comandos não podem ser combinados em um único comando. A exibição a seguir mostra os comandos e a mensagem de sucesso do 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.

O GFlags pode alterar o tamanho do banco de dados de rastreamento de pilha no modo de usuário, mas não o exibe. Para exibir o tamanho da base de dados de rastreamento, use APIs do Registo ou Regedit para verificar o valor da entrada do Registo StackTraceDatabaseSizeInMB (HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ImageFileName\StackTraceDatabaseSizeInMB).

O comando a seguir usa Reg para consultar o valor de StackTraceDatabaseSizeInMB:

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

Em resposta, Reg exibe o valor de StackTraceDatabaseSizeInMB, que confirma que o novo valor, 24 (0x18), foi definido. Esse valor entra em vigor quando você reinicia 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

Dica Digite o comando reg query no Bloco de Notas e salve o arquivo como tracedb.bat. Depois disso, para exibir o valor de StackTraceDatabaseSizeInMB, basta digitar TraceDb.