Comando de Strace Linux

Comando de Strace Linux
Linux proporciona una gran cantidad de herramientas de depuración para la solución de problemas y aplicaciones. Una herramienta beneficiosa para los desarrolladores es el comando Linux Strace. El comando Strace es una herramienta de depuración y solución de problemas que intercepta y registra las llamadas del sistema realizadas y recibidas por un proceso. Proporciona una secuencia binaria elaborada desde el principio hasta el final.

En este tutorial, profundizamos en el comando Linux Strace y demostramos algunos usos de ejemplo.

Sintaxis del comando básico

El comando strace toma la siguiente sintaxis:

Comando de Opciones de Strace

Cómo instalar el comando Linux Strace

La mayoría de las distribuciones modernas de Linux se envían con utilidad strace de forma predeterminada. Sin embargo, si Strace no está instalado en su sistema por cualquier razón, siga los pasos a continuación para instalarlo.

En Debian / Ubuntu

Si está ejecutando sistemas basados ​​en Debian / Ubuntu, ejecute:

$ sudo apt instalación strace

En rhel / centos

$ sudo yum instalación strace

Para verificar que Strace esté instalado, puede verificar su versión como se muestra.

$ strace -version

Veamos ahora algunos usos de ejemplo.

Comando básico de Strace

En su formato más básico, el comando strace trazará y mostrará llamadas del sistema, los argumentos (encerrados en aparatos cuadrados o paréntesis) y la llamada ejecutable.

En el ejemplo a continuación, podemos ver los argumentos de ejecutar el script Hola.mierda, Llamada encerrada entre paréntesis en la primera línea.

$ Strace ./Hola.mierda

En la última línea, puede ver el estado de salida del comando, en este caso, 0. Esto implica que el comando se ejecutó con éxito sin ningún error. Un código de salida de -1 significa que se encontró un error durante la ejecución.

Contar las llamadas del sistema

Si desea obtener el número de llamadas al sistema, use el -C opción para el recuento como se muestra.

$ strace -c ./Hola.mierda

De la salida anterior, puede ver el número de llamadas del sistema realizadas, incluida la realización de llamadas.

Muestra llamadas específicas del sistema con Strace

Además, puede optar por ver la naturaleza de las llamadas del sistema realizadas con Strace utilizando el -mi opción seguida de la naturaleza de la llamada del sistema. En el fragmento que se muestra, hemos mostrado las llamadas del sistema de escritura y leído.

$ strace -e traza = escribir ./Hola.mierda
$ strace -e traza = leer ./Hola.mierda

Trace llamadas del sistema de red

Puede restringir Strace a mostrar llamadas del sistema de red especificando el tipo de llamada. Aquí. traza = red indica que tenemos la intención de obtener la llamada de red del comando de red ping 8.8.8.8 -C 4.

$ strace -e trace = network ping 8.8.8.8 -C 4

Llamadas del sistema de señal de rastreo

Para las llamadas relacionadas con el sistema, use el argumento como se indica en el comando a continuación. El comando imprime el llamador de señal para el ping 8.8.8.8 -C 4 dominio.

$ strace -e traza = ping de señal 8.8.8.8 -C 4

Impresión de la marca de tiempo de cada llamada del sistema

Para extraer la marca de tiempo para cada llamada del sistema, use el -riñonal Opción como se demuestra en el siguiente comando.

$ strace -r ping 8.8.8.8 -C 4

Como puede ver, se imprime una marca de tiempo relativa para cada llamada del sistema. Se captura y registra la diferencia horaria entre las llamadas sucesivas del sistema.

Mostrar la duración gastada en hacer llamadas al sistema

Además, puede imprimir la duración del tiempo dedicado a cada llamada del sistema utilizando el -T opción como se muestra. El tiempo dedicado se indica en la última columna como se indica.

$ strace -t ping 8.8.8.8 -C 4

Muestra la hora exacta de cada llamada del sistema

Para imprimir la hora real o exacta de las llamadas del sistema, invoca el -T opción como se muestra. El tiempo de reloj en tiempo real o de pared se imprime en la primera columna.

$ strace -t ./Hola.mierda

Muestre el puntero de instrucciones para cada llamada

Para imprimir el puntero de instrucciones para cada llamada del sistema, use el -i opción.

$ strace -i ./Hola.mierda

Guardar la salida de las llamadas del sistema a un archivo de texto

Finalmente, el comando strace le brinda la opción de guardar la salida en un archivo de texto, como se muestra.

$ strace -o sample_output.TXT ./Hola.mierda

Aquí, sample_output.TXT es el archivo de salida, mientras ./Hola.mierda es el comando cuyas llamadas del sistema estamos rastreando.

Terminando

El comando strace es una utilidad de línea de comandos útil y poderosa que ayuda a depurar aplicaciones, comandos y procesos, especialmente si no tiene el código fuente disponible. Es la herramienta de opción de elección para desarrolladores de software y administradores de sistemas.