Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O recurso Rastreamento de Referência de Objeto registra rastreamentos de pilha sequenciais sempre que um contador de referência de objeto é incrementado ou diminuído. Os rastreamentos podem ajudá-lo a detetar erros de referência de objeto, incluindo dupla desreferenciação, falha na referência e falha na desreferência de objetos. Esta funcionalidade é suportada 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 de 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 você suspeita que um determinado objeto não está sendo referenciado ou desreferenciado corretamente, geralmente porque o aumento do uso do pool indica que um objeto está vazando ou que 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ê visualiza 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 provável fonte do erro.
As seguintes regras se aplicam ao Rastreamento de Referência de Objeto:
Você pode executar apenas um rastreamento de referência de objeto de cada vez.
Como um rastreamento em todo o kernel não é prático, você deve limitar o rastreamento a objetos criados com tags 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 que são referenciados pelo processo, mas são criados por um processo diferente, não são rastreados.
Você pode especificar um máximo de 16 tags de pool para cada rastreamento. Os objetos com qualquer uma das tags de pool especificadas são rastreados.
Se você especificar um arquivo de imagem e uma ou mais tags de pool, o rastreamento será limitado a objetos criados pelo processo e que tenham qualquer uma das tags 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 se iniciam após o rastreamento começar.
Os objetos marcados para rastreamento são rastreados até que o objeto seja destruído ou o rastreamento seja desativado. 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) onde o rastreamento é mantido até que o rastreamento seja desativado.
Você pode armazenar a configuração de Rastreamento de Referência de Objeto como uma configuração do registo ou uma configuração de parâmetro de kernel (tempo de execução). Se tiver definições de registo e de indicador do kernel, as definições de execução terão precedência, mas serão perdidas quando desligar ou reiniciar o computador.