Présentation du volet Arborescence des traces
Le volet Arborescence des traces est le focus de l’Observateur des défauts. En règle générale, vous parcourez le code dans le volet Arborescence des traces , tout en observant son effet sur le code dans le volet Code source et sur les valeurs du volet État .
Le volet Arborescence de traces est organisé en une structure hiérarchique avec une série de nœuds extensibles et réductibles. La hiérarchie indique les éléments de code qui ont provoqué l’exécution d’autres éléments. Ce format vous permet d’interpréter chaque branche de code et d’afficher et de masquer facilement les sections de code au fur et à mesure que vous parcourez la trace.
La capture d’écran suivante montre un exemple de volet Arborescence de trace .
Chaque élément de code dans le volet Arborescence des traces est précédé de son numéro de ligne dans le fichier source. Cette numérotation vous aide à trouver l’élément de code dans la fenêtre Arborescence source et dans le fichier source.
Certaines lignes de code du volet Code source correspondent à plusieurs éléments du volet Arborescence de traces. Cette situation se produit lorsque la ligne de code provoque plusieurs actions. Par exemple, si un paramètre d’appel de fonction est un IRQL, la ligne de code qui inclut l’appel de fonction peut également inclure un appel pour rechercher l’IRQL actuel, par exemple :
IoReleaseCancelSpinLock(KeGetCurrentIrql());
Dans ce cas, le volet Arborescence de traces comprend un élément critique pour l’appel de fonction KeGetCurrentIrql , quelques appels au modèle de système d’exploitation SDV pour générer aléatoirement un IRQL, puis un appel à IoReleaseCancelSpinLock avec l’IRQL retourné.