En termes simples, strace trace tous les appels système émis par un programme avec leurs codes de retour. Pensez à des choses telles que des opérations de fichier/socket et bien d'autres plus obscures.
Il est plus utile si vous avez une certaine connaissance pratique de C car ici, les appels système représenteraient plus précisément les appels de bibliothèque C standard.
Disons que votre programme est /usr/local/bin/cough. Utilisez simplement :
strace /usr/local/bin/cough <any required argument for cough here>
ou
strace -o <out_file> /usr/local/bin/cough <any required argument for cough here>
pour écrire dans 'out_file'.
Toute la sortie de strace ira à stderr (attention, le volume de celle-ci demande souvent une redirection vers un fichier). Dans les cas les plus simples, votre programme s'arrêtera avec une erreur et vous pourrez voir où en sont ses dernières interactions avec le système d'exploitation dans la sortie strace.
Plus d'informations devraient être disponibles avec :
man strace
Présentation de Strace
strace peut être considéré comme un débogueur léger. Il permet à un programmeur/utilisateur de découvrir rapidement comment un programme interagit avec le système d'exploitation. Pour ce faire, il surveille les appels et les signaux du système.
Utilisations
Bon pour quand vous n'avez pas de code source ou que vous ne voulez pas être dérangé pour vraiment le parcourir.
Également utile pour votre propre code si vous n'avez pas envie d'ouvrir GDB, mais que vous souhaitez simplement comprendre l'interaction externe.
Une bonne petite introduction
Voici une introduction en douceur à l'utilisation de strace pour déboguer les blocages de processus :strace introduction