Compartilhar via


!avrf

A extensão !avrf controla as configurações do Application Verifier e exibe diversas saídas geradas por ele.

    !avrf
    !avrf -vs { Length | -a Address }
    !avrf -hp { Length | -a Address }
    !avrf -cs { Length | -a Address }
    !avrf -dlls [ Length ]
    !avrf -trm
    !avrf -ex [ Length ] 
    !avrf -threads [ ThreadID ]
    !avrf -tp [ ThreadID ]
    !avrf -srw  [ Address | Address Length ] [ -stats ]
    !avrf -leak  [ -m ModuleName] [ -r ResourceType] [ -a Address ] [ -t ]
    !avrf -trace TraceIndex 
    !avrf -cnt
    !avrf -brk [BreakEventType]  
    !avrf -flt [EventType Probability] 
    !avrf -flt break EventType 
    !avrf -flt stacks Length 
    !avrf -trg [ Start End | dll Module | all ] 
    !avrf -settings 
    !avrf -skp [ Start End | dll Module | all | Time ] 

Parâmetros

-vs { Comprimento | -a Endereço }
Exibe o log de operação no espaço virtual. Length especifica o número de registros a serem exibidos, iniciando pelos mais recentes. Address especifica o endereço virtual. Os registros das operações virtuais contendo esse endereço virtual são exibidos.

-hp { Comprimento | -a Endereço }
Exibe o log de operação de heap. Address especifica o endereço de heap. Os registros das operações de heap contendo esse endereço de heap são exibidos.

-cs { Comprimento | -a Endereço }
Exibe o log de exclusão da seção crítica. Length especifica o número de registros a serem exibidos, iniciando pelos mais recentes. Address especifica o endereço da seção crítica. Os registros da seção crítica específica são exibidos quando Address é especificado.

-dlls [ Comprimento ]
Exibe o log de carga/descarga da DLL. Length especifica o número de registros a serem exibidos, iniciando pelos mais recentes.

-trm
Exibe um log de todos os threads finalizados e suspensos.

-ex [ Comprimento ]
Exibe o log de exceções. O Application Verifier controla todas as exceções no aplicativo.

-threads [ ThreadID ]
Exibe informações sobre threads no processo de destino. Para threads filho, o tamanho da pilha e os sinalizadores CreateThread especificados pelo pai também são exibidos. Se você fornecer uma ID de thread, apenas as informações desse thread serão exibidas.

-tp [ ThreadID ]
Exibe o log de threadpool. Esse log contém rastreamentos de pilha para diversas operações, como alterar a máscara de afinidade de thread, alterar a prioridade do thread, lançar mensagens de thread, e inicializar ou cancelar a inicialização do COM no retorno de chamada de threadpool. Se você fornecer uma ID de thread, apenas as informações desse thread serão exibidas.

-srw [ Endereço | Endereço Comprimento ] [ -stats ]
Exibe o log de SRW (leitor/gravador fino). Se você especificar Address, serão exibidos os registros do bloqueio SRW nesse endereço. Se você especificar Address e Length, serão exibidos os registros de bloqueio SRW nesse intervalo de endereços. Se você incluir a opção -stats, aparecerão as estatísticas de bloqueio SRW.

-leak [ -m Nome_do_Módulo] [ -r Tipo_de_Recursos] [ -a Endereço ] [ -t ]
Exibe o log de recursos pendentes. Esses recursos podem ou não ser vazamentos em dado momento. Se você especificar Modulename (inclusive a extensão), aparecerão todos os recursos pendentes no módulo especificado. Se você especificar ResourceType, aparecerão todos os recursos pendentes desse tipo de recurso. Se você especificar Address, aparecerão os registros de recursos pendentes com esse endereço. O ResourceType pode ser um dos seguintes:

Heap: exibe alocações de heap por meio de APIs de heap do Win32

Local: exibe alocações locais/globais

CRT: exibe alocações por meio de APIs CRT

Virtual: exibe reservas virtuais

BSTR: exibe alocações BSTR

Registro: exibe aberturas da chave do registro

Energia: exibe objetos de notificação de energia

Identificador: exibe alocações de identificador de thread, arquivo e evento

-trace TraceIndex Exibe um rastreamento de pilha para o índice de rastreamento especificado. Certas estruturas usam esse número de índice de 16 bits para identificar um rastreamento de pilha. Esse índice aponta para um local no banco de dados de rastreamento de pilha.

-cnt Exibe uma lista de contadores globais.

-brk [ BreakEventType ] Especifica um evento de interrupção. BreakEventType é o número do tipo do evento de interrupção. Para obter uma lista dos tipos possíveis e uma lista das configurações de evento de interrupção atuais, insira !avrf -brk.

-flt [ EventType Probability ] Especifica uma injeção de falha. EventType é o número do tipo do evento. Probability é a frequência de falhas do evento. Ela pode ser qualquer número inteiro entre 0 e 1.000.000 (0xF4240). Se você inserir !avrf -flt sem mais parâmetros, aparecerão as configurações atuais de injeção de falhas.

-flt break EventType Faz com que o Verificador de Aplicativos entre no depurador sempre que essa falha, especificada por EventType, é injetada.

-flt stacks Comprimento Exibe o número de rastreamentos de pilha de comprimento para as operações injetadas de falha mais recentes.

-trg [ Início Fim | dll Módulo | all ] Especifica um intervalo de destino. Start é o endereço inicial do intervalo de destino. End é o endereço final do intervalo de destino. Module especifica o nome (inclusive a extensão .exe ou .dll, mas não o caminho) de um módulo a ser direcionado. Se você inserir -trg all, haverá uma redefinição de todos os intervalos de destino. Se você inserir -trg sem mais parâmetros, aparecerão os intervalos de destino atuais.

-skp [ Início Fim | Módulo dll | todos | Time ] Especifica um intervalo de exclusão. Start é o endereço inicial do intervalo de exclusão. End é o endereço final do intervalo de exclusão. Module especifica o nome de um módulo a ser direcionado ou excluído. Module especifica o nome (incluindo a extensão .exe ou .dll, mas não o caminho) de um módulo a ser excluído. Se você inserir -skp all, haverá a redefinição de todos os intervalos de destino ou de exclusão. Se você inserir um valor para Time, todas as falhas serão suprimidas por Time milissegundos após a retomada da execução.

DLL

exts.dll

Informações Adicionais

Para saber mais sobre como baixar e instalar o Application Verifier e a documentação, confira o Application Verifier.

Comentários

Quando a extensão !avrf é usada sem parâmetros, ela exibe as opções atuais do Application Verifier. Se a opção Heap de página inteira ou Heap de preenchimento rápido estiver habilitada, as informações sobre heaps de página ativos também aparecerão. Para obter alguns exemplos, confira "Logs de operação de heap" em Depurar paradas do Application Verifier.

Se ocorrer uma parada do Application Verifier, a extensão !avrf sem parâmetros revelará a natureza da parada e a causa. Para obter alguns exemplos, confira o Depurar paradas do Application Verifier.

Se os símbolos de ntdll.dll e verifier.dll estiverem ausentes, a extensão !avrf gerará uma mensagem de erro. Para saber como resolver esse problema, confira "Instalação e configuração do depurador" em Depurar paradas do Application Verifier.