Guia de rastreamento dinâmico Solaris

Variáveis internas

A tabela seguinte fornece uma lista de variáveis internas de D. Todas essas variáveis são variáveis globais escalares; nenhuma variável de segmento local, ou variável de cláusula local ou matrizes de associação internas, estão definidas no momento por D.

Tabela 3–1 Variáveis internas do DTrace

Tipo e nome 

Descrição 

int64_t arg0, ..., arg9

Os dez primeiros argumentos de entrada para um teste representado como inteiros brutos de 64 bits. Se menos de dez argumentos forem passados para o teste atual, as variáveis restantes retornarão zero. 

args[]

Os argumentos digitados para o teste atual, se houver. A matriz args[] é acessada por meio de um índice de inteiro, mas cada elemento é definido como o tipo correspondente ao argumento do teste determinado. Por exemplo, se args[] for referenciado por um teste de chamada do sistema read(2), args[0] é do tipo int, args[1] é do tipo void * e args[2] é do tipo size_t.

uintptr_t caller

O local do contador do programa do segmento atual um pouco antes de entrar no teste atual. 

chipid_t chip

O identificador de chipe da CPU do chipe físico atual. Para obter mais informações, consulte o Capítulo 26Provedor sched.

processorid_t cpu

O identificador de CPU da CPU atual. Para obter mais informações, consulte o Capítulo 26Provedor sched.

cpuinfo_t *curcpu

As informações de CPU da CPU atual. Para obter mais informações, consulte o Capítulo 26Provedor sched.

lwpsinfo_t *curlwpsinfo

O estado de processo leve (LWP) do LWP associado ao segmento atual. Esta estrutura é descrita mais detalhadamente na página do manual proc(4).

psinfo_t *curpsinfo

O estado de processo do processo associado ao segmento atual. Esta estrutura é descrita mais detalhadamente na página do manual proc(4).

kthread_t *curthread

O endereço da estrutura de dados interna do kernel do sistema operacional do segmento atual, kthread_t. kthread_t é definido em <sys/thread.h>. Consulte Solaris Internals para obter mais informações sobre esta variável e outras estruturas de dados do sistema operacional.

string cwd

O nome do diretório de trabalho atual do processo associado ao segmento atual. 

uint_t epid

O ID de teste ativado (EPID) do teste atual. Este inteiro identifica exclusivamente um teste em particular com um predicado específico e um conjunto de ações. 

int errno

O valor de erro retornado pela última chamada do sistema executada por este segmento. 

string execname

O nome que foi passado a exec(2) para que execute o processo atual.

gid_t gid

O ID de grupo real do processo atual. 

uint_t id

O ID de teste do teste atual. Este ID é o identificador de teste exclusivo do sistema conforme publicado por DTrace e listado na saída de dtrace -l.

uint_t ipl

O nível de prioridade de saída (IPL) da CPU atual na hora do acionamento do teste. Consulte Solaris Internals para obter mais informações sobre os níveis de interrupção e manipulação de interrupção no kernel do sistema operacional.

lgrp_id_t lgrp

O ID de grupo de latência do grupo de latência do qual a CPU é um membro. Para obter mais informações, consulte o Capítulo 26Provedor sched.

pid_t pid

O ID de processo do processo atual. 

pid_t ppid

O ID de processo pai do processo atual. 

string probefunc

A parte do nome de função da descrição do teste atual. 

string probemod

A parte do nome de módulo da descrição do teste atual. 

string probename

A parte do nome da descrição do teste atual. 

string probeprov

A parte do nome do provedor da descrição do teste atual. 

psetid_t pset

O ID de conjunto de processadores do conjunto de processadores que contém a CPU atual. Para obter mais informações, consulte o Capítulo 26Provedor sched.

string root

O nome do diretório raiz do processo associado ao segmento atual. 

uint_t stackdepth

A profundidade da moldura da porta na hora de acionamento do teste. 

id_t tid

O ID de segmento do segmento atual. Para segmentos associados aos processos do usuário, este valor é igual ao resultado de uma chamada ao pthread_self(3C).

uint64_t timestamp

O valor atual de um contador de carimbo de data e hora em nanossegundos. Este contador é incrementado a partir de um ponto arbitrário no passado e deve ser usado somente para cálculos relativos. 

uid_t uid

O ID de usuário real do processo atual. 

uint64_t uregs[]

O segmento atual salvou os valores de registro de modo do usuário na hora de acionamento do teste. O uso da matriz uregs[] é discutido no Capítulo 33Rastreio de processo do usuário.

uint64_t vtimestamp

O valor atual de um contador de carimbo de data e hora em nanossegundos que é virtualizado no total de tempo que o segmento atual está sendo executado em uma CPU, menos o tempo gasto nos predicados e ações do DTrace. Este contador é incrementado a partir de um ponto arbitrário no passado e deve ser usado somente para cálculos relativos de tempo. 

uint64_t walltimestamp

O número atual de nanossegundos desde 00:00 (Horário Coordenado Universal), 1 de janeiro de 1970. 

As funções internas da linguagem D, tal como trace(), são discutidas no Capítulo 10Ações e sub-rotinas.