Manuel de suivi dynamique Solaris

Attributs d'interface

DTrace décrit les interfaces au moyen d'un triplet d'attributs consistant en deux niveaux de stabilité et en une classe de dépendance. Par convention, les attributs d'interface sont écrits dans l'ordre suivant et séparés par des barres obliques :

stabilité-noms / stabilité-noms / classe-dépendance

La stabilité des noms d'une interface décrit le niveau de stabilité associé au nom tel qu'il apparaît dans votre programme en D ou sur la ligne de commande dtrace(1M). Par exemple, la variable execname en langage D est un nom stable : Sun garantit que cet identificateur continuera d'être pris en charge dans vos programmes en D conformément aux règles décrites pour les interfaces stables ci-dessus.

La stabilité des données d'une interface se distingue de la stabilité associée au nom de l'interface. Ce niveau de stabilité décrit l'engagement de Sun à conserver les formats de données utilisés par l'interface, ainsi que la sémantique des données connexes. Par exemple, la variable pid en langage D est une interface stable : les ID de processus sont un concept stable dans Solaris et Sun garantit que la variable pid appartiendra au type pid_t, la sémantique étant définie sur l'ID de processus correspondant au thread ayant déclenché une sonde donnée conformément aux règles des interfaces stables.

La classe de dépendance d'une interface est distincte de la stabilité de son nom et de ses données et indique si l'interface est propre à la plate-forme d'exploitation ou au microprocesseur actuels.

DTrace et le compilateur D suivent les attributs de stabilité de toutes les entités d'interface de DTrace, y compris les fournisseurs, les descriptions de sonde, les variables en D, les fonctions en D, les types et les instructions de programme, comme nous allons brièvement l'étudier. Notez que les trois valeurs peuvent varier indépendamment les unes des autres. Par exemple, la variable curthread en langage D possède les attributs Stable/Privé/Commun : le nom de la variable est stable et il est commun à toutes les plates-formes d'exploitation Solaris mais cette variable permet d'accéder à un format de données privé qui s'avère être un artefact de l'implémentation du noyau Solaris. La plupart des variables en D possèdent les attributs Stable/Stable/Commun, comme les variables que vous définissez.