GNU/Linux >> Linux Esercitazione >  >> Linux

Come usare il comando Linux Strace

In questo articolo impareremo come utilizzare Linux Strace Command. Strace è un potente strumento da riga di comando per il debug e la risoluzione dei problemi dei programmi nel sistema operativo Linux. Cattura e registra tutte le chiamate di sistema effettuate da un processo ei segnali ricevuti dal processo.

Visualizza il nome di ogni chiamata di sistema insieme ai suoi argomenti racchiusi tra parentesi e il suo valore di ritorno all'errore standard; puoi anche reindirizzarlo facoltativamente a un file.

Normalmente strace è disponibile per impostazione predefinita se non è presente nel tuo sistema install strace utilizzando il seguente comando:

dnf install strace

Puoi eseguire un comando con strace o passargli un PID usando l'opzione -p come nei seguenti esempi:

Traccia le chiamate del sistema di comando Linux:

In questo esempio eseguiremo semplicemente un comando "df -h" seguito da strace per tenere traccia delle chiamate di sistema per il comando df -h.

strace df -h

L'output sarà simile a questo:

Dall'output sopra, puoi vedere vari tipi di chiamate di sistema effettuate dal comando df -h, ad esempio “open(“/etc/ld.so.cache”, O_RDONLY|O_CLOEXEC) =3″

Dove,

  • aperto – è il tipo di chiamata di sistema
  • (“/etc/ld.so.cache”, O_RDONLY|O_CLOEXEC) – argomento della chiamata di sistema
  • 3 – valore restituito dalla chiamata di sistema

Traccia il PID del processo Linux:

Se un processo è già in esecuzione, puoi tracciarlo semplicemente passando il suo PID a strace; questo riempirà lo schermo con l'output continuo che mostra le chiamate di sistema effettuate dal processo, per terminarlo, premi CTRL + C.

strace -p 7302

Per ottenere un riepilogo del tempo totale, delle chiamate e degli errori di una chiamata di sistema, utilizzare il flag -c come mostrato di seguito;

strace -pc 7583

Stampa puntatore istruzioni durante la chiamata di sistema:

Il flag -i mostra il puntatore dell'istruzione al momento di ogni chiamata di sistema effettuata dal programma.

strace -i df -h

Mostra ora ogni riga di output di traccia:

Puoi anche stampare l'ora corrente per ogni riga nell'output della traccia, passando il flag -t.

strace -t df -h

Stampa il tempo di comando speso nelle chiamate di sistema:

Per mostrare la differenza di tempo tra l'inizio e la fine di ogni chiamata di sistema effettuata da un programma, utilizzare l'opzione -T.

strace -T df -h

Traccia solo chiamate di sistema specifiche:

Nel comando seguente trace=write è noto come un'espressione qualificante, dove "trace" è un qualificatore (altri includono signal, abrev, verbose, raw, read o write) e "write" è il valore del qualificatore.

Il comando seguente mostra effettivamente le chiamate di sistema per stampare l'output df -h sullo standard output.

strace -e trace=write df -h

Alcuni comandi aggiuntivi sul qualificatore di traccia sono i seguenti:

strace -e trace=open,close df -h
strace -e trace=open,close,read,write df -h
strace -e trace=all df -h

Traccia le chiamate di sistema in base a una determinata condizione:

Vedremo come tracciare le chiamate di sistema relative a una data classe di eventi. Il comando seguente può essere utilizzato per tracciare tutte le chiamate di sistema che coinvolgono la gestione dei processi.

strace -q -e trace=process df -h

Quindi, per tracciare tutte le chiamate di sistema che accettano un nome file come argomento, utilizzare il comando seguente:

strace -q  -e trace=file df -h

Allo stesso modo, puoi tracciare tutte le chiamate di sistema relative alla rete, alla memoria e ai segnali utilizzando i seguenti comandi:

strace -q -e trace=memory df -h
strace -e trace=network df -h
strace -e trace=signal df -h

Reindirizza l'output di traccia su file:

Per scrivere i messaggi di traccia inviati allo standard error in un file, utilizzare l'opzione -o. Ciò significa che sullo schermo viene stampato solo l'output del comando come mostrato di seguito.

strace -o strace_message.txt df -h

Tutte le chiamate di sistema sono state scritte nel file strace_message.txt. Usa il comando cat per vedere le chiamate di sistema.

cat strace_message.txt

Mostra output di debug di Strace:

Per mostrare le informazioni di debug per lo strumento strace, usa il flag -d.

strace -d df -h

In conclusione, strace è uno strumento per diagnosticare la causa del fallimento del programma. è un potente strumento per il debug e la risoluzione dei problemi. È praticamente utile per amministratori di sistema esperti, programmatori e hacker.


Linux
  1. Come usare il comando ftp di Linux

  2. Come usare il comando Disown in Linux

  3. Come usare il comando Su in Linux

  4. Come utilizzare il comando dello schermo di Linux

  5. Come usare i comandi strace e ltrace in Linux

Come utilizzare il comando di arresto di Linux

Come usare grep in Linux

Come utilizzare il comando Mkdir su Linux

Come utilizzare il comando fd sul sistema Linux

Come usare il comando jobs in Linux

Come usare il comando schermo in Linux