Rastreo de la aplicación de usuario

En este tema se describe el rastreo de aplicaciones de usuario.

La operación de rastreo depende de tres procesos lógicamente diferentes: el proceso rastreado, el proceso del controlador y el proceso del analizador. Un proceso puede ser simultáneamente el proceso rastreado, el proceso de controlador y el proceso de analizador. Cuando el proceso rastreado se está ejecutando y se alcanza un punto de rastreo, se registra un suceso de rastreo en las corrientes de rastreo creadas para ese proceso si el identificador de tipo de suceso de rastreo asociado a este proceso no se filtra.

El proceso de controlador controla el registro de sucesos de rastreo en corrientes de rastreo. El proceso de controlador realiza las siguientes operaciones para una corriente de rastreo activa:
  • Inicializa los atributos de una corriente de rastreo.
  • Crea la corriente de rastreo para un proceso rastreado especificado utilizando los atributos inicializados.
  • Inicia y detiene el rastreo para una corriente de rastreo.
  • Filtra el tipo de sucesos de rastreo que se van a registrar.
  • Finaliza una corriente de rastreo.

El proceso del analizador recupera los sucesos rastreados en tiempo de ejecución, cuando la corriente de rastreo está activa y está registrando sucesos de rastreo; o después de abrir un registro de rastreo que se ha registrado y cerrado anteriormente.

Las subrutinas posix_trace_create, posix_trace_create_withlogy posix_trace_open crean un identificador de secuencia de rastreo. Las subrutinas posix_trace_create y posix_trace_create_withlog sólo las utiliza un proceso de controlador. La subrutina posix_trace_open sólo la utiliza un proceso de analizador.

Un proceso rastreado contiene una correlación de los nombres de suceso de rastreo con los identificadores de tipo de suceso de rastreo definidos para el proceso. Un suceso de rastreo activo registra los tipos de sucesos de rastreo predefinidos del sistema, como POSIX_TRACE_START, y los tipos de sucesos de rastreo definidos para los procesos rastreados pero no filtrados por la corriente de rastreo. Para definir la correlación, llame a la subrutina posix_trace_eventid_open desde la aplicación instrumentada, o llame a la subrutina posix_trace_trid_eventid_open desde el proceso del controlador. Para una corriente de rastreo pregrabada, la lista de tipos de sucesos de rastreo se obtiene del registro de rastreo pregrabada.

Las subrutinas de rastreo se pueden utilizar al depurar el código posiblemente preinstrumentado y el análisis de errores post mortem. La depuración de código preinstrumentado puede requerir prestaciones de filtrado previo para evitar sobrepasar la corriente de rastreo y permitir centrarse en la información esperada. El análisis de errores post mortem requiere capacidades de rastreo completas para poder registrar todo tipo de información.

Los sucesos que se van a rastrear pertenecen a las dos clases siguientes:
  • Sucesos de rastreo de usuario que ha generado la aplicación instrumentada.
  • Sucesos de rastreo del sistema que el sistema operativo ha generado en correspondencia con la operación de control de rastreo.

En un archivo asociado con una corriente de rastreo activa, los campos st_ctime y st_mtime se marcan para su actualización cada vez que alguna de las operaciones de rastreo modifica dicho archivo.

En un archivo asociado con una corriente de rastreo, el campo st_atime se marca para actualización cada vez que alguna de las operaciones de rastreo hace que se lean datos de dicho archivo.

Si una aplicación realiza alguna operación en un descriptor de archivo asociado a una corriente de rastreo activa o pregrabada, los resultados no se definen hasta que se llama a las subrutinas posix_trace_shutdown o posix_trace_close para dicha corriente de rastreo.