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
ltracey adjúntelo al programa.Si el programa que desea supervisar no se está ejecutando, inicie
ltracey especifique program:ltrace -f -l library -e function program
$ ltrace -f -l library -e function programCopy to Clipboard Copied! Toggle word wrap Toggle overflow Si el programa ya se está ejecutando, busque su id de proceso (pid) y adjunte
ltracea él:ps -C program ltrace -f -l library -e function program -ppid
$ ps -C program (...) $ ltrace -f -l library -e function program -ppidCopy to Clipboard Copied! Toggle word wrap Toggle overflow Utilice las opciones
-e,-fy-lpara filtrar la salida:-
Suministre los nombres de las funciones que se mostrarán como function. La opción
-e functionpuede utilizarse varias veces. Si se omite,ltracemuestra las llamadas a todas las funciones. -
En lugar de especificar funciones, puede especificar bibliotecas completas con la opción
-l libraryopción. Esta opción se comporta de forma similar a la opción-e functionopció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
ltracemuestra 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
ltracese muestra inmediatamente, si no se establece ningún filtro.ltracesale cuando el programa se cierra.Para terminar la monitorización antes de que el programa rastreado salga, pulse .
-
Si
ltraceinició el programa, el programa termina junto conltrace. -
Si se adjunta
ltracea 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
$ ltrace ... |& tee your_log_file.log
Recursos adicionales
La página del manual ltrace(1):
man ltrace
$ man ltraceCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Manual del usuario del conjunto de herramientas para desarrolladores de Red Hat