Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O recurso rastreamento de referência de objeto registra rastreamentos de pilha sequenciais sempre que um contador de referência de objeto é incrementado ou decremente. Os rastreamentos podem ajudá-lo a detectar erros de referência de objeto, incluindo desreferenciamento duplo, falha na referência e falha na desreferência de objetos. Esse recurso tem suporte apenas no Windows Vista e versões posteriores do Windows.
Para obter informações sobre como configurar o recurso Rastreamento de Referência de Objeto na caixa de diálogo Sinalizadores Globais , consulte Configurando o Rastreamento de Referência de Objeto. Para obter informações sobre como configurar o recurso Rastreamento de Referência de Objeto no prompt de comando, consulte Comandos GFlags. Para obter um exemplo, consulte Exemplo 15: Usando o Rastreamento de Referência de Objeto.
Os rastreamentos de referência de objeto são mais úteis quando se suspeita que um objeto específico não está sendo referenciado ou desreferenciado corretamente, normalmente porque o aumento do uso do pool indica que um objeto está vazando, ou um processo ou sessão não pode ser encerrado, mesmo que sua contagem de identificadores seja zero. Ao contrário dos rastreamentos que são registrados em logs para revisão posterior, os rastreamentos de referência de objeto são projetados para serem usados em tempo real, enquanto o processo está em execução e o objeto está sendo referenciado e desreferenciado. Você exibe um rastreamento de referência de objeto no depurador usando a extensão do depurador !obtrace. Como essa extensão requer um endereço de objeto especificado, você deve saber com antecedência qual objeto é a fonte provável do erro.
As regras a seguir se aplicam ao Rastreamento de Referência de Objeto:
Você pode executar apenas um rastreamento de referência de objeto por vez.
Como um rastreamento em todo o kernel não é prático, você deve limitar o rastreamento a objetos criados com marcas de pool especificadas ou a objetos criados por um processo especificado (indicado por um nome de arquivo de imagem) ou ambos.
Você pode especificar apenas um arquivo de imagem para cada rastreamento. Se você especificar um arquivo de imagem, o rastreamento será limitado a objetos criados pelos processos que a imagem representa. Os objetos referenciados pelo processo, mas que são criados por um processo diferente, não são rastreados.
Você pode especificar um máximo de 16 marcas de pool para cada rastreamento. Objetos com qualquer uma das marcas de pool especificadas são rastreados.
Se você especificar um arquivo de imagem e uma ou mais marcas de pool, o rastreamento será limitado a objetos que são criados pelo processo e têm qualquer uma das marcas de pool especificadas.
O Rastreamento de Referência de Objeto não pode rastrear processos que já estão em execução quando um rastreamento é iniciado. O rastreamento inclui apenas os objetos de processos que começam após o início do rastreamento.
Os objetos marcados para rastreamento são rastreados até que o objeto seja destruído ou o rastreamento seja desabilitado. Por padrão, os rastreamentos de um objeto são mantidos somente até que o objeto seja destruído, mas você pode especificar um rastreamento "permanente" (/p) em que o rastreamento é mantido até que o rastreamento seja desabilitado.
Você pode armazenar a configuração de rastreamento de referência de objeto como uma configuração no Registro ou uma configuração de sinalizador de kernel em tempo de execução. Se você tiver tanto configurações de sinalizador de registro quanto de kernel, as configurações de tempo de execução terão precedência, mas serão descartadas quando você desligar ou reiniciar o computador.