Seguimiento de referencia de objetos

La característica Seguimiento de referencia de objetos registra seguimientos de pila secuenciales cada vez que se incrementa o disminuye un contador de referencia de objeto. Los seguimientos pueden ayudarle a detectar errores de referencia de objetos, como la desreferenciación doble, el error de referencia y el error en la desreferenciación de objetos. Esta característica solo se admite en Windows Vista y versiones posteriores de Windows.

Para obtener información sobre cómo configurar la característica Seguimiento de referencia de objetos en el cuadro de diálogo Marcas globales , vea Configuring Object Reference Tracing. Para obtener información sobre cómo configurar la característica Seguimiento de referencia de objetos en el símbolo del sistema, vea Comandos de GFlags. Para obtener un ejemplo, vea Ejemplo 15: Uso del seguimiento de referencia de objetos.

Los seguimientos de referencia a objetos son más útiles cuando sospecha que no se hace referencia a un objeto determinado o se desreferencia correctamente, normalmente porque el aumento del uso del grupo indica que un objeto se está filtrando o que no se puede finalizar un proceso o una sesión, aunque su recuento de identificadores sea cero. A diferencia de los seguimientos que se registran en los registros para su revisión posterior, los seguimientos de referencia de objetos están diseñados para usarse en tiempo real, mientras se ejecuta el proceso y se hace referencia al objeto y se desreferencia. Puede ver un seguimiento de referencia de objeto en el depurador mediante la extensión !obtrace debugger. Dado que esta extensión requiere una dirección de objeto especificada, debe saber con antelación qué objeto es el origen probable del error.

Las reglas siguientes se aplican al seguimiento de referencia de objetos:

  • Solo puede ejecutar un seguimiento de referencia de objeto a la vez.

  • Dado que un seguimiento de todo el kernel no es práctico, debe limitar el seguimiento a los objetos creados con etiquetas de grupo especificadas o a objetos creados por un proceso especificado (indicado por un nombre de archivo de imagen) o ambos.

  • Solo puede especificar un archivo de imagen para cada seguimiento. Si especifica un archivo de imagen, el seguimiento se limita a los objetos creados por los procesos que representa la imagen. Los objetos a los que hace referencia el proceso, pero que se crean mediante un proceso diferente, no se rastrean.

  • Puede especificar un máximo de 16 etiquetas de grupo para cada seguimiento. Se realiza un seguimiento de los objetos con cualquiera de las etiquetas de grupo especificadas.

  • Si especifica un archivo de imagen y una o varias etiquetas de grupo, el seguimiento se limita a los objetos creados por el proceso y tienen cualquiera de las etiquetas de grupo especificadas.

  • El seguimiento de referencia de objetos no puede realizar un seguimiento de los procesos que ya se están ejecutando cuando se inicia un seguimiento. El seguimiento incluye solo los objetos de procesos que comienzan después de que comience el seguimiento.

  • Los objetos marcados para el seguimiento se rastrean hasta que se destruye el objeto o se deshabilita el seguimiento. De forma predeterminada, los seguimientos de un objeto solo se mantienen hasta que se destruye el objeto, pero se puede especificar un seguimiento "permanente" (/p) donde se conserva el seguimiento hasta que se deshabilita el seguimiento.

  • Puede almacenar la configuración de seguimiento de referencia de objetos como una configuración del Registro o una marca de kernel (tiempo de ejecución). Si tiene la configuración del registro y de la marca de kernel, la configuración en tiempo de ejecución tiene prioridad, pero se pierde al apagar o reiniciar el equipo.