Exemplo 8: Ampliando o banco de dados de rastreamento de pilha User-Mode

O comando GFlags a seguir aumenta o tamanho máximo do banco de dados de rastreamento de pilha do modo de usuário 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. Ele usa o parâmetro /tracedb para definir o tamanho máximo do banco de dados de rastreamento de pilha e o valor 24 para indicar o tamanho em megabytes. O comando usa unidades decimais. (Unidades hexadecimal não são válidas.)

gflags /i MyApp.exe /tracedb 24

Como a mensagem de erro a seguir indica, esse comando falha porque o sinalizador Criar banco de dados de rastreamento de pilha do modo de usuário (+ust) não está definido para o arquivo de imagem MyApp. Você não pode 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 como 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 êxito 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.

O GFlags pode alterar o tamanho do banco de dados de rastreamento de pilha do modo de usuário, mas não o exibe. Para exibir o tamanho do banco de dados de rastreamento, use APIs do Registro, Regedit ou Reg (reg.exe), uma ferramenta incluída no Windows XP e no Windows Server 2003, para marcar o valor da entrada do registro StackTraceDatabaseSizeInMB (HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ImageFileName\StackTraceDatabaseSizeInMB).

(Uma versão do Reg está incluída no Windows XP, mas essa versão não permite os comutadores /v e /s no mesmo comando.)

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 se torna eficaz 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

Ponta 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.