GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo se debe usar strace?

En palabras simples, strace rastrea todas las llamadas al sistema emitidas por un programa junto con sus códigos de retorno. Piense en cosas como operaciones de archivo/socket y otras mucho más oscuras.

Es más útil si tiene algún conocimiento práctico de C, ya que aquí las llamadas al sistema representarían con mayor precisión las llamadas a la biblioteca de C estándar.

Digamos que su programa es /usr/local/bin/cough. Simplemente use:

strace /usr/local/bin/cough <any required argument for cough here>

o

strace -o <out_file> /usr/local/bin/cough <any required argument for cough here>

para escribir en 'out_file'.

Toda la salida de strace irá a stderr (cuidado, el gran volumen a menudo solicita una redirección a un archivo). En los casos más simples, su programa se cancelará con un error y podrá ver cuáles fueron sus últimas interacciones con el sistema operativo en la salida de strace.

Más información debería estar disponible con:

man strace

Resumen de Strace
strace puede verse como un depurador ligero. Permite que un programador/usuario descubra rápidamente cómo un programa interactúa con el sistema operativo. Lo hace monitoreando las llamadas y señales del sistema.

Usos
Bueno para cuando no tienes el código fuente o no quieres que te molesten en revisarlo.
Además, es útil para su propio código si no tiene ganas de abrir GDB, pero solo está interesado en comprender la interacción externa.

Una buena pequeña introducción
Aquí hay una introducción suave al uso de strace para depurar bloqueos de procesos:introducción de strace


Linux
  1. ¿Cuánto espacio libre en disco debo tener en mi servidor?

  2. ¿Qué es la Curación de Contenidos y cómo se debe hacer?

  3. Cómo reemplazar un dispositivo Btrfs fallido

  4. ¿Cómo podría interceptar las llamadas del sistema Linux?

  5. ¿Cómo usar dos2unix?

Cómo rastrear la ejecución del programa usando el comando Strace de Linux

Cómo utilicé Ansible para automatizar las actualizaciones en casa

Cómo enumerar las bibliotecas compartidas utilizadas por los ejecutables en Linux

Cómo usar el comando Strace de Linux

¿Cómo debo determinar la utilización actual de la red?

¿Qué tan grande debe ser la partición de intercambio?