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);
}