Manuel de suivi dynamique Solaris

Variables intégrées

La table suivante contient la liste complète des variables en D intégrées. Toutes ces variables sont des variables globales scalaires ; les variables locales de thread ou de clause ou les tableaux associatifs ne sont pas définis en langage D pour le moment.

Tableau 3–1 Variables intégrées de DTrace

Type et nom 

Description 

int64_t arg0, ..., arg9

Dix premiers arguments d'entrée vers une sonde représentés comme des nombres entiers bruts de 64 bits. Si moins de dix arguments sont transmis à la sonde actuelle, les variables restantes retournent à zéro. 

args[]

Arguments type de la sonde actuelle, le cas échéant. Le tableau args[] est accessible au moyen d'un index de nombres entiers mais chaque élément est défini pour représenter le type correspondant à l'argument de sonde donné. Par exemple, si args[] est référencé par une sonde d'appel système read(2), args[0] appartient au type int, args[1] au type void * et args[2] au type size_t.

uintptr_t caller

Emplacement du compteur du programme du thread actuel juste avant d'entrer dans la sonde actuelle. 

chipid_t chip

Identificateur de puce de CPU de la puce physique actuelle. Pour plus d'informations, reportez-vous au Chapitre26Fournisseur sched.

processorid_t cpu

Identificateur de la CPU actuelle. Pour plus d'informations, reportez-vous au Chapitre26Fournisseur sched.

cpuinfo_t *curcpu

Informations sur la CPU actuelle. Pour plus d'informations, reportez-vous au Chapitre26Fournisseur sched.

lwpsinfo_t *curlwpsinfo

État du processus léger (LWP) de LWP associé au thread actuel. Cette structure est décrite plus en détails dans la page de manuel proc(4).

psinfo_t *curpsinfo

État du processus lié au thread actuel. Cette structure est décrite plus en détails dans la page de manuel proc(4).

kthread_t *curthread

Adresse de la structure des données internes du noyau du système d'exploitation du thread actuel, kthread_t. kthread_t est défini dans <sys/thread.h>. Reportez-vous aux Données internes sur Solaris pour plus d'informations sur cette variable et les autres structures de données du système d'exploitation.

string cwd

Nom du répertoire de travail actuel du processus associé au thread actuel. 

uint_t epid

ID de sonde activée (EPID) de la sonde actuelle. Ce nombre entier n'identifie qu'une sonde particulière qui est activée par un prédicat et un ensemble d'actions spécifiques. 

int errno

Valeur d'erreur retournée par le dernier appel système exécuté par ce thread. 

string execname

Nom transmis à exec(2) pour exécuter le processus actuel.

gid_t gid

ID de groupe réel du processus actuel. 

uint_t id

ID de sonde de la sonde actuelle. Cet ID constitue l'identificateur unique à l'échelle du système de la sonde tel qu'émis par DTrace et répertorié dans la sortie de dtrace -l.

uint_t ipl

Niveau de priorité d'interruption (IPL) sur la CPU actuelle au moment du déclenchement de la sonde. Reportez-vous aux Données internes sur Solaris pour plus d'informations sur les niveaux d'interruption et la gestion des interruptions dans le noyau du système d'exploitation de Solaris.

lgrp_id_t lgrp

ID du groupe de latence auquel la CPU actuelle appartient. Pour plus d'informations, reportez-vous au Chapitre26Fournisseur sched.

pid_t pid

ID de processus du processus actuel. 

pid_t ppid

ID de processus parent du processus actuel. 

string probefunc

Partie du nom de fonction de la description de la sonde actuelle. 

string probemod

Partie du nom de module de la description de la sonde actuelle. 

string probename

Partie du nom de la description de la sonde actuelle. 

string probeprov

Partie du nom du fournisseur de la description de la sonde actuelle. 

psetid_t pset

ID de l'ensemble de processeurs contenant la CPU actuelle. Pour plus d'informations, reportez-vous au Chapitre26Fournisseur sched.

string root

Nom du répertoire root du processus associé au thread actuel. 

uint_t stackdepth

Profondeur du cadre de la pile du thread actuel au moment du déclenchement de la sonde. 

id_t tid

ID du thread actuel. Pour les threads liés aux processus utilisateur, cette valeur équivaut au résultat d'un appel vers pthread_self(3C).

uint64_t timestamp

Valeur actuelle d'un compteur d'horodatage en nanosecondes. Ce compteur procède à l'incrémentation à partir d'un point arbitraire antérieur et ne doit être utilisé que pour la réalisation de calculs relatifs. 

uid_t uid

ID de l'utilisateur réel du processus actuel. 

uint64_t uregs[]

Valeurs d'enregistrement en mode utilisateur de sauvegarde du thread actuel au moment du déclenchement de la sonde. L'utilisation du tableau uregs[] est présentée dans le Chapitre33Suivi des processus utilisateur.

uint64_t vtimestamp

Valeur actuelle d'un compteur d'horodatage en nanosecondes, virtualisée par la durée d'exécution du thread actuel sur la CPU moins le temps passé dans les prédicats et actions de DTrace. Ce compteur procède à l'incrémentation à partir d'un point arbitraire antérieur et ne doit être utilisé que pour la réalisation de calculs temporels relatifs. 

uint64_t walltimestamp

Nombre actuel de nanosecondes depuis 00:00 (heure coordonnée universelle) le 1er janvier 1970. 

Les fonctions intégrées au langage D, comme trace() sont présentées dans le Chapitre10Actions et sous-routines.