In parole semplici, strace traccia tutte le chiamate di sistema emesse da un programma insieme ai loro codici di ritorno. Pensa a cose come operazioni su file/socket e molte altre più oscure.
È molto utile se hai una certa conoscenza pratica di C poiché qui le chiamate di sistema starebbero più accuratamente per le chiamate di libreria C standard.
Diciamo che il tuo programma è /usr/local/bin/cough. Usa semplicemente:
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>
da scrivere in 'out_file'.
Tutto l'output di strace andrà a stderr (attenzione, l'enorme volume spesso richiede un reindirizzamento a un file). Nei casi più semplici, il tuo programma si interromperà con un errore e sarai in grado di vedere quali sono state le sue ultime interazioni con il sistema operativo nell'output strace.
Maggiori informazioni dovrebbero essere disponibili con:
man strace
Panoramica di Strace
strace può essere visto come un debugger leggero. Consente a un programmatore/utente di scoprire rapidamente come un programma interagisce con il sistema operativo. Lo fa monitorando le chiamate ei segnali di sistema.
Usi
Buono per quando non hai il codice sorgente o non vuoi essere disturbato a esaminarlo davvero.
Inoltre, utile per il tuo codice se non hai voglia di aprire GDB, ma sei solo interessato a comprendere l'interazione esterna.
Una buona piccola introduzione
Ecco una breve introduzione all'uso di strace per eseguire il debug dei blocchi del processo:Strace Introduction