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.