Buscar

Capítulo 9. Grabación de las interacciones de la aplicación

download PDF

El código ejecutable de las aplicaciones interactúa con el código del sistema operativo y las bibliotecas compartidas. La grabación de un registro de actividad de estas interacciones puede proporcionar suficiente información sobre el comportamiento de la aplicación sin necesidad de depurar el código real de la misma. Por otra parte, el análisis de las interacciones de una aplicación puede ayudar a determinar las condiciones en las que se manifiesta un fallo.

9.1. Herramientas útiles para registrar las interacciones de las aplicaciones

Red Hat Enterprise Linux ofrece múltiples herramientas para analizar las interacciones de una aplicación.

strace

La herramienta strace permite principalmente registrar las llamadas al sistema (funciones del núcleo) utilizadas por una aplicación.

  • La herramienta strace puede proporcionar una salida detallada sobre las llamadas, porque strace interpreta los parámetros y los resultados con el conocimiento del código del núcleo subyacente. Los números se convierten en los respectivos nombres de las constantes, las banderas combinadas a nivel de bits se expanden a la lista de banderas, los punteros a las matrices de caracteres se desreferencian para proporcionar la cadena real, y más. Puede faltar el soporte para las características más recientes del kernel.
  • Puede filtrar las llamadas rastreadas para reducir la cantidad de datos capturados.
  • El uso de strace no requiere ninguna configuración particular, excepto la configuración del filtro de registro.
  • El rastreo del código de la aplicación con strace provoca una importante ralentización de la ejecución de la aplicación. Como resultado, strace no es adecuado para muchas implantaciones de producción. Como alternativa, considere el uso de ltrace o SystemTap.
  • La versión de strace disponible en Red Hat Developer Toolset también puede realizar la manipulación de llamadas al sistema. Esta capacidad es útil para la depuración.
ltrace

La herramienta ltrace permite registrar las llamadas al espacio de usuario de una aplicación en objetos compartidos (bibliotecas dinámicas).

  • La herramienta ltrace permite rastrear las llamadas a cualquier biblioteca.
  • Puede filtrar las llamadas rastreadas para reducir la cantidad de datos capturados.
  • El uso de ltrace no requiere ninguna configuración particular, excepto la configuración del filtro de registro.
  • La herramienta ltrace es ligera y rápida, y ofrece una alternativa a strace: es posible rastrear las respectivas interfaces en bibliotecas como glibc con ltrace en lugar de rastrear las funciones del núcleo con strace.
  • Dado que ltrace no maneja un conjunto conocido de llamadas como strace, no intenta explicar los valores pasados a las funciones de la biblioteca. La salida de ltrace sólo contiene números y punteros en bruto. La interpretación de la salida de ltrace requiere consultar las declaraciones de interfaz reales de las bibliotecas presentes en la salida.
Nota

En Red Hat Enterprise Linux 8.0, un problema conocido impide que ltrace rastree archivos ejecutables del sistema. Esta limitación no se aplica a los archivos ejecutables construidos por los usuarios.

SystemTap

SystemTap es una plataforma de instrumentación para sondear los procesos en ejecución y la actividad del kernel en el sistema Linux. SystemTap utiliza su propio lenguaje de scripting para programar manejadores de eventos personalizados.

  • En comparación con el uso de strace y ltrace, la creación de scripts para el registro supone más trabajo en la fase de configuración inicial. Sin embargo, las capacidades de scripting amplían la utilidad de SystemTap más allá de la producción de registros.
  • SystemTap funciona creando e insertando un módulo del kernel. El uso de SystemTap es eficiente y no crea una ralentización significativa del sistema o de la ejecución de aplicaciones por sí mismo.
  • SystemTap viene con un conjunto de ejemplos de uso.
GDB

El depurador de GNU (GDB) está pensado principalmente para la depuración, no para el registro. Sin embargo, algunas de sus características lo hacen útil incluso en el escenario donde la interacción de una aplicación es la actividad principal de interés.

  • Con GDB, es posible combinar convenientemente la captura de un evento de interacción con la depuración inmediata de la ruta de ejecución posterior.
  • El BGF es más adecuado para analizar la respuesta a eventos infrecuentes o singulares, tras la identificación inicial de la situación problemática por parte de otras herramientas. El uso del BGF en cualquier escenario con eventos frecuentes resulta ineficaz o incluso imposible.
Red Hat logoGithubRedditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

© 2024 Red Hat, Inc.