Guía de seguimiento dinámico de Solaris

Variables integradas

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.