Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La fonctionnalité Suivi des références d'objets enregistre les traces de pile séquentielles chaque fois qu’un compteur de référence d’objet est incrémenté ou décrémenté. Les traces peuvent vous aider à détecter les erreurs de référence d’objet, notamment le double dé-référencement, l’échec de référencer et l’échec de déréférencement des objets. Cette fonctionnalité est prise en charge uniquement dans Windows Vista et les versions ultérieures de Windows.
Pour plus d’informations sur la configuration de la fonctionnalité de suivi de référence d’objet dans la boîte de dialogue Indicateurs globaux , consultez Configuration du suivi des références d’objet. Pour plus d’informations sur la configuration de la fonctionnalité de suivi des références d’objets à l’invite de commandes, consultez les commandes GFlags. Pour obtenir un exemple, consultez l’exemple 15 : Utilisation du suivi de référence d’objet.
Les traces de référence d’objet sont les plus utiles lorsque vous soupçonnez qu’un objet particulier n’est pas référencé ou déréféré correctement, généralement parce que l’utilisation accrue du pool indique qu’un objet est en fuite, ou qu’un processus ou une session ne peut pas être terminé, même si son nombre de handles est égal à zéro. Contrairement aux traces enregistrées dans les logs pour une révision ultérieure, les traces de référence d'objet sont conçues pour être utilisées en temps réel, pendant que le processus est en cours d'exécution et que l'objet est référencé et déréférencé. Vous affichez une trace de référence d’objet dans le débogueur à l’aide de l’extension de débogueur !obtrace. Étant donné que cette extension nécessite une adresse d’objet spécifiée, vous devez savoir à l’avance quel objet est la source probable de l’erreur.
Les règles suivantes s’appliquent au suivi des références des objets :
Vous ne pouvez exécuter qu’une seule trace de référence d’objet à la fois.
Étant donné qu’une trace à l’échelle du noyau n’est pas pratique, vous devez limiter la trace aux objets créés avec des balises de pool spécifiées ou aux objets créés par un processus spécifié (indiqué par un nom de fichier image) ou les deux.
Vous ne pouvez spécifier qu’un seul fichier image pour chaque trace. Si vous spécifiez un fichier image, la trace est limitée aux objets créés par les processus que l’image représente. Les objets référencés par le processus, mais créés par un autre processus, ne sont pas suivis.
Vous pouvez spécifier un maximum de 16 balises de pool pour chaque trace. Les objets avec l'une des balises de pool spécifiées sont tracés.
Si vous spécifiez à la fois un fichier image et une ou plusieurs balises de pool, la trace est limitée aux objets créés par le processus et possèdent l’une des balises de pool spécifiées.
Le suivi de référence d’objet ne peut pas suivre les processus déjà en cours d’exécution lorsqu’une trace est démarrée. La trace inclut uniquement les objets des processus qui commencent après le début de la trace.
Les objets marqués pour le suivi sont suivis jusqu’à ce que l’objet soit détruit ou désactivé. Par défaut, les traces d’un objet sont conservées uniquement jusqu’à ce que l’objet soit détruit, mais vous pouvez spécifier une trace « permanente » (/p) où la trace est conservée jusqu’à ce que le suivi soit désactivé.
Vous pouvez stocker la configuration du suivi de référence d'objet en tant que paramètre de Registre ou paramètre d'indicateur de noyau (à l'exécution). Si vous avez des paramètres d’indicateur de registre et de noyau, les paramètres d’exécution sont prioritaires, mais sont perdus lorsque vous arrêtez ou redémarrez l’ordinateur.