Variables de clase incorporadas

Además de las variables incorporadas especiales, __arg1 a __arg32 y __rv, Vue también define un conjunto de variables incorporadas de uso general. Estas variables incorporadas de propósito general se describen con más detalle en esta sección y algunas variables incorporadas específicas del gestor de analizadores se describen en su respectiva sección del gestor de analizadores. Las variables de clase incorporadas son funciones, pero ProbeVuelas trata como variables. Por lo tanto, puede utilizar estas variables incorporadas en la sección de predicado de una cláusula Vue.

Las variables incorporadas siguientes están soportadas en Vue:

__tid
ID de hebra de hebra rastreada.
__pid
ID de proceso de hebra rastreada.
__ppid
ID de proceso padre de hebra rastreada.
__pgid
ID de grupo de procesos de la hebra rastreada.
__pnombre
Nombre de proceso de la hebra rastreada.
__uid, __euid
ID de usuario real y efectivo de hebra rastreada.
__trcid
ID de proceso del proceso de rastreo (es decir, del mandato probevue )
__errno
Valor de número de error actual para la hebra rastreada.
__kernelmode
Modalidad ejecutable actual: es 1 (en modalidad de kernel) o 0 (en modalidad de usuario).
__r3, ..., __r10
Valores de registro de propósito general (para parámetros de función o valores de retorno).
__subproceso
Hebra actual.
__curproc
Proceso actual.
__ubbloqueo
Área de usuario del proceso actual.
__mst
Variable incorporada para acceder al contenido de registro de hardware del área de guardado de estado de máquina (MST) de la hebra actual.
__stat
Variable incorporada para proporcionar acceso a las estadísticas del sistema para diversos componentes de kernel de AIX® .

El script siguiente es un ejemplo que utiliza variables incorporadas:

	@@syscall:*:read:entry
	{
		printf("Thread ID:%d, Process ID:%d, Parent Process ID:%d\n",
				__tid, __pid, __ppid);
		printf("Process Group ID: %d\n", __pgid);
		printf("Process name = %s\n", __pname);
	
		printf("Real UID=%d, Effective UID=%d\n", __uid, __euid);S
	       
		printf("probevue command process ID = %d\n", __trcid);
	
		printf("Errno = %d\n", __errno);
		printf("Mode = %s\n", __kernelmode == 1 ? "kernel" : "user");
	
		printf("Current values of GPRs: r3=0x%016llx, r4=0x%016llx, r5=0x%016llx\n",
				__r3, __r4, __r5);
		printf("                        r6=0x%016llx, r7=0x%016llx, r8=0x%016llx\n",
				__r6, __r7, __r8);
		printf("                        r9=0x%016llx, r10=0x%016llx\n",
				__r9, __r10);
	}