Comando Linux Strace

Comando Linux Strace
Linux fornisce una vasta gamma di strumenti di debug per la risoluzione dei problemi e le applicazioni. Uno strumento benefico per gli sviluppatori è il comando Linux Strace. Il comando Strace è uno strumento di debug e risoluzione dei problemi che intercetta e registra le chiamate di sistema effettuate e ricevute da un processo. Fornisce un'elaborata sequenza binaria dall'inizio a destra fino alla fine.

In questo tutorial, approfondiamo il comando Linux Strace e dimostriamo alcuni usi di esempio.

Sintassi di comando di base

Il comando Strace prende la seguente sintassi:

Comando $ Opzioni Strace

Come installare il comando Linux Strace

La più moderna distribuzioni Linux viene fornita con utilità Strace per impostazione predefinita. Tuttavia, se Strace non è installato sul sistema per qualsiasi motivo, segui i passaggi seguenti per installarlo.

Su Debian / Ubuntu

Se stai eseguendo sistemi basati su Debian / Ubuntu, esegui:

$ sudo APT Installa Strace

Su RHEL / CENTOS

$ sudo yum installa strace

Per verificare che Strace sia installato, è possibile controllare la sua versione come mostrato.

$ Strace -Version

Ora controlliamo alcuni usi di esempio.

Comando Strace di base

Nel suo formato più elementare, il comando Strace traccia e visualizzerà le chiamate di sistema, gli argomenti (racchiusi in parentesi o parentesi quadrati) e la chiamata eseguibile.

Nell'esempio seguente, possiamo vedere gli argomenti dell'esecuzione dello script Ciao.sh, Chiama chiuso tra parentesi nella prima riga.

$ Strace ./Ciao.sh

All'ultima riga, puoi vedere lo stato di uscita del comando, in questo caso, 0. Ciò implica che il comando è stato eseguito correttamente senza alcun errore. Un codice di uscita di -1 significa che è stato riscontrato un errore durante l'esecuzione.

Conta le chiamate di sistema

Se si desidera ottenere il numero di chiamate di sistema, usa il -C Opzione per il conteggio come mostrato.

$ Strace -C ./Ciao.sh

Dall'output sopra, è possibile vedere il numero di chiamate di sistema effettuate, incluso effettuare le chiamate.

Visualizza chiamate di sistema specifiche con Strace

Inoltre, puoi scegliere di visualizzare la natura delle chiamate di sistema effettuate con Strace usando il -e Opzione seguita dalla natura della chiamata di sistema. Nello snippet mostrato, abbiamo visualizzato le chiamate di sistema di scrittura e lettura.

$ Strace -e Trace = scrivi ./Ciao.sh
$ strace -e trace = leggi ./Ciao.sh

Traccia chiamate di sistema di rete

È possibile limitare Strace alla visualizzazione delle chiamate di sistema di rete specificando il tipo di chiamata. Qui. Trace = rete indica che intendiamo ottenere la chiamata di rete del comando di rete ping 8.8.8.8 -C 4.

$ Strace -e Trace = Network ping 8.8.8.8 -C 4

Traccia le chiamate del sistema di segnale

Per le chiamate relative al sistema, utilizzare l'argomento come indicato nel comando seguente. Il comando stampica il call segnale per il ping 8.8.8.8 -C 4 comando.

$ Strace -e Trace = Signal ping 8.8.8.8 -C 4

Stampa il timestamp di ciascuna chiamata di sistema

Per estrarre il timestamp per ogni chiamata di sistema, utilizzare il -R Opzione come dimostrato nel seguente comando.

$ Strace -r ping 8.8.8.8 -C 4

Come puoi vedere, un timestamp relativo viene stampato per ogni chiamata di sistema. La differenza di tempo tra le chiamate di sistema successive viene catturata e registrata.

Visualizza la durata spesa per effettuare chiamate di sistema

Inoltre, è possibile stampare la durata del tempo trascorso per ogni chiamata di sistema utilizzando il -T Opzione come mostrato. Il tempo trascorso è indicato nell'ultima colonna come indicato.

$ Strace -t ping 8.8.8.8 -C 4

Visualizza l'ora esatta di ogni chiamata di sistema

Per stampare l'ora effettiva o esatta delle chiamate di sistema, invocare il -T Opzione come mostrato. Il tempo di clock in tempo reale o muro è stampato nella prima colonna.

$ Strace -t ./Ciao.sh

Visualizza il puntatore di istruzioni per ogni chiamata

Per stampare il puntatore di istruzioni per ogni chiamata di sistema, utilizzare il -io opzione.

$ Strace -I ./Ciao.sh

Salva l'output delle chiamate di sistema in un file di testo

Infine, il comando Strace ti dà l'opzione di salvare l'output in un file di testo, come mostrato.

$ STRACE -O Sample_output.TXT ./Ciao.sh

Qui, Sample_output.TXT è il file di output, mentre ./Ciao.sh è il comando il cui sistema chiama il sistema stiamo rintracciando.

Avvolgendo

Il comando Strace è un'utilità di linea di comando utile e potente che aiuta a debug applicazioni, comandi e processi, soprattutto se non si dispone del codice sorgente disponibile. È lo strumento preferito per gli sviluppatori di software e gli amministratori di sistema.