GNU/Linux >> Linux Esercitazione >  >> Linux

Come dovrebbe essere usato lo strace?

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


Linux
  1. Comprensione delle chiamate di sistema su Linux con strace

  2. Quanto spazio libero su disco dovrei avere sul mio server?

  3. come posso intercettare le chiamate sys linux?

  4. Come compilare il file .c con OpenSSL include?

  5. Come usare dos2unix?

Come tracciare l'esecuzione del programma utilizzando il comando Strace di Linux

Come ho usato Ansible per automatizzare gli aggiornamenti a casa

Come elencare le librerie condivise utilizzate dagli eseguibili in Linux

Come usare il comando Linux Strace

Come devo determinare l'attuale utilizzo della rete?

Quanto deve essere grande la partizione di swap?