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).
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.
Requisitos previos
Procedimiento
- Identifique las bibliotecas y funciones de interés, si es posible.
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.
-
Suministre los nombres de las funciones que se mostrarán como function. La opción
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.ltrace
sale cuando el programa se cierra.Para terminar la monitorización antes de que el programa rastreado salga, pulse
.-
Si
ltrace
inició el programa, el programa termina junto conltrace
. -
Si se adjunta
ltrace
a un programa que ya se está ejecutando, el programa termina junto conltrace
.
-
Si
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.
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