Red Hat Training

A Red Hat training course is available for RHEL 8

9.3. Monitorización de las llamadas a funciones de la biblioteca de la aplicación con ltrace

La herramienta ltrace permite supervisar las llamadas de una aplicación a las funciones disponibles en las bibliotecas (objetos compartidos).

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.

Procedimiento

  1. Identifique las bibliotecas y funciones de interés, si es posible.
  2. Inicie ltrace y adjúntelo al programa.

    • Si el programa que desea supervisar no se está ejecutando, inicie ltrace y especifique program:

      $ ltrace -f -l library -e function program
    • Si el programa ya se está ejecutando, busque su id de proceso (pid) y adjunte ltrace a él:

      $ ps -C program
      (...)
      $ ltrace -f -l library -e function program -ppid
    • Utilice las opciones -e, -f y -l para filtrar la salida:

      • Suministre los nombres de las funciones que se mostrarán como function. La opción -e function puede utilizarse varias veces. Si se omite, ltrace muestra las llamadas a todas las funciones.
      • En lugar de especificar funciones, puede especificar bibliotecas completas con la opción -l library opción. Esta opción se comporta de forma similar a la opción -e function opción.
      • Si no desea rastrear ningún proceso o hilo bifurcado, omita la opción -f.

      Consulte la página del manual ltrace(1)_ para más información.

  3. ltrace muestra las llamadas a la biblioteca realizadas por la aplicación.

    En la mayoría de los casos, una aplicación realiza un gran número de llamadas y la salida ltrace se muestra inmediatamente, si no se establece ningún filtro.

  4. ltrace sale cuando el programa se cierra.

    Para terminar la monitorización antes de que el programa rastreado salga, pulse ctrl C.

    • Si ltrace inició el programa, el programa termina junto con ltrace.
    • Si se adjunta ltrace a un programa que ya se está ejecutando, el programa termina junto con ltrace.
  5. Analizar la lista de llamadas a la biblioteca realizadas por la aplicación.

    • Si la aplicación se bloquea, la información importante probablemente esté al final del registro.
    • El resultado contiene mucha información innecesaria. Sin embargo, puede construir un filtro más preciso y repetir el procedimiento.
Nota

Es ventajoso tanto ver la salida como guardarla en un archivo. Para ello, utilice el comando tee:

$ ltrace ... |& tee your_log_file.log

Recursos adicionales

  • La página del manual ltrace(1):

    $ man ltrace
  • Manual del usuario del conjunto de herramientas para desarrolladores de Red Hat