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