Descripción general
ltrace intercepta y muestra las llamadas a funciones de bibliotecas compartidas que utiliza un programa. Esto ayuda enormemente a comprender el comportamiento del programa y a diagnosticar problemas.
Usos principales
- Depuración de programas
- Análisis de cuellos de botella de rendimiento
- Investigación de vulnerabilidades de seguridad
- Ingeniería inversa
Opciones principales
Las opciones principales de ltrace controlan el método de rastreo, el formato de salida, el filtrado, etc.
Control de rastreo
Salida y filtrado
Comando generado:
Combina los comandos.
Descripción:
`ltrace` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de uso
Cómo rastrear las llamadas a bibliotecas de un programa en varios escenarios usando ltrace.
Rastreo básico de llamadas a bibliotecas
ltrace ls
Rastrea las llamadas a bibliotecas del comando 'ls'.
Ver estadísticas de llamadas
ltrace -c ls
Muestra un resumen del número de llamadas y el tiempo de las funciones de biblioteca del comando 'ls'.
Guardar la salida en un archivo
ltrace -o ls_trace.log ls
Guarda los resultados del rastreo del comando 'ls' en el archivo 'ls_trace.log'.
Rastrear solo funciones de biblioteca específicas
ltrace -e 'malloc|free' ls
Rastrea solo las llamadas a las funciones 'malloc' o 'free' del comando 'ls'.
Rastrear hasta los procesos hijos
ltrace -f bash -c "ls"
Cuando se ejecuta 'ls' en el shell 'bash', rastrea las llamadas a bibliotecas tanto de 'bash' como de 'ls'.
Instalación
ltrace puede no estar instalado por defecto en la mayoría de las distribuciones de Linux. Puedes instalarlo usando los siguientes comandos.
Debian/Ubuntu
sudo apt update && sudo apt install ltrace
Instala ltrace en sistemas basados en Debian o Ubuntu.
CentOS/RHEL/Fedora
sudo dnf install ltrace
Instala ltrace en sistemas basados en CentOS, RHEL o Fedora.
Consejos y precauciones
Puntos a tener en cuenta y consejos útiles al usar ltrace.
Sobrecarga de rendimiento
- ltrace puede ralentizar significativamente la ejecución del programa, por lo que debe usarse con precaución en entornos de producción.
Diferencia con strace
- ltrace rastrea las llamadas a bibliotecas, mientras que strace rastrea las llamadas al sistema. El uso conjunto de ambas herramientas permite una comprensión más completa del comportamiento del programa.
Binarios enlazados estáticamente
- ltrace solo es efectivo para programas que dependen de bibliotecas dinámicas. Los binarios enlazados estáticamente no tienen llamadas a bibliotecas, por lo que no pueden ser rastreados por ltrace.
Permisos
- Puede que necesites permisos de root (sudo) para rastrear procesos de otros usuarios o binarios del sistema.