En la tabla siguiente se incluye una lista completa de las variables integradas de D. Todas estas variables son variables globales escalares; actualmente D no define variables de cláusulas locales, variables de subproceso local ni matrices asociativas integradas.
Tabla 3–1 Variables integradas de DTrace
Tipo y nombre |
Descripción |
---|---|
int64_t arg0, ..., arg9 |
Los primeros diez argumentos de entrada de un sondeo representados como enteros de 64 bits sin formato. Si se pasan menos de diez argumentos al sondeo actual, el resto de variables devuelve cero. |
args[] |
Los argumentos escritos para el sondeo actual, en caso de que haya alguno. A la matriz args[] se accede usando un índice de enteros, pero cada elemento está definido para ser el tipo correspondiente al argumento del sondeo concreto. Por ejemplo, si un sondeo de llamada de sistema args[] ; hace referencia a read(2), args[0] es del tipo int, args[1] es del tipo void * y args[2] es del tipo size_t. |
uintptr_t caller |
La ubicación del contador de programa del subproceso actual justo antes de entrar en el sondeo actual. |
chipid_t chip |
El identificador del chip de la CPU para el chip físico actual. Consulte el Capítulo 26Proveedor sched, para obtener más información. |
processorid_t cpu |
Identificador de la CPU para la CPU actual. Consulte el Capítulo 26Proveedor sched, para obtener más información. |
cpuinfo_t *curcpu |
Información de la CPU para la CPU actual. Consulte el Capítulo 26Proveedor sched, para obtener más información. |
lwpsinfo_t *curlwpsinfo |
Estado del proceso ligero (LWP) del LWP asociado al subproceso actual. Esta estructura se describe en detalle en la página de man proc(4) . |
psinfo_t *curpsinfo |
El estado del proceso asociado al subproceso actual. Esta estructura se describe en detalle en la página de man proc(4) . |
kthread_t *curthread |
La dirección de la estructura de datos interna del núcleo del sistema operativo para el subproceso actual (kthread_t). kthread_t se define en <sys/thread.h>. Consulte Solaris Internals (Funcionamiento de Solaris) para obtener más información sobre esta variable y otras estructuras de datos del sistema operativo. |
string cwd |
El nombre del directorio de trabajo actual del proceso asociado al subproceso actual. |
uint_t epid |
El ID de sondeo activado (EPID) para el sondeo actual. Este entero identifica de forma exclusiva a un sondeo concreto que está activado con un predicado específico y un conjunto de acciones. |
int errno |
Valor de error devuelto por la última llamada de sistema ejecutada por este subproceso. |
string execname |
El nombre pasado a exec(2) para ejecutar el proceso actual. |
gid_t gid |
El ID del grupo real del proceso actual. |
uint_t id |
El ID de sondeo correspondiente al sondeo actual. Este ID es el identificador único en todo el sistema para el sondeo, tal y como publica DTrace y aparece en la lista de resultados de dtrace -l. |
uint_t ipl |
El nivel de prioridad de interrupción (IPL) en la CPU actual en el momento de activar el sondeo. Consulte Solaris Internals (Funcionamiento de Solaris) para obtener más información acerca de los niveles de interrupción y la administración de las interrupciones en el núcleo del sistema operativo de Solaris. |
lgrp_id_t lgrp |
El ID de grupo de latencia correspondiente al grupo de latencia al que pertenece la CPU actual. Consulte el Capítulo 26Proveedor sched, para obtener más información. |
pid_t pid |
El ID de proceso del proceso actual. |
pid_t ppid |
El ID de proceso principal del proceso actual. |
string probefunc |
Parte del nombre de la función de la descripción del sondeo actual. |
string probemod |
Parte del nombre del módulo de la descripción del sondeo actual. |
string probename |
Parte del nombre de la descripción del sondeo actual. |
string probeprov |
Parte del nombre del proveedor de la descripción del sondeo actual. |
psetid_t pset |
ID de conjunto de procesadores correspondiente al conjunto de procesadores al que pertenece la CPU actual. Consulte el Capítulo 26Proveedor sched, para obtener más información. |
string root |
El nombre del directorio root del proceso asociado con el subproceso actual. |
uint_t stackdepth |
Profundidad del marco de pila del subproceso actual en el momento de activar el sondeo. |
id_t tid |
El ID de subproceso que identifica al subproceso actual. Para los subprocesos asociados a los procesos del usuario, este valor es igual al resultado de una llamada efectuada a pthread_self(3C). |
uint64_t timestamp |
El valor actual de un contador de marca de tiempo expresado en nanosegundos. Este contador aumenta a partir de un punto arbitrario en el pasado y sólo se debe usar para computaciones relativas. |
uid_t uid |
El ID de usuario real del proceso actual. |
uint64_t uregs[] |
Los valores de registro del modo de usuario guardados del subproceso actual en el momento de activar el sondeo. El uso de la matriz uregs[] se explica en el Capítulo 33Seguimiento de procesos de usuario. |
uint64_t vtimestamp |
El valor actual del contador de marcas de tiempo expresado en nanosegundos que se virtualiza hasta la cantidad de tiempo que el subproceso actual se ha estado ejecutando en la CPU menos el tiempo invertido en los predicados y las acciones de DTrace. Este contador aumenta a partir de un punto arbitrario en el pasado y sólo se debe usar para computaciones de tiempo relativas. |
uint64_t walltimestamp |
El número actual de nanosegundos desde la hora coordinada universal 00:00 del 1 de enero de 1970. |
Las funciones integradas en el lenguaje D, por ejemplo trace(), se explican en el Capítulo 10Acciones y subrutinas.