Comando Linux Strace

Comando Linux Strace
O Linux fornece uma riqueza de ferramentas de depuração para solucionar serviços e aplicativos. Uma ferramenta benéfica para os desenvolvedores é o comando Linux Strace. O comando strace é uma ferramenta de depuração e solução de problemas que intercepta e registra as chamadas do sistema feitas e recebidas por um processo. Ele fornece uma sequência binária elaborada desde o início até o fim.

Neste tutorial, nos aprofundamos no comando linux strace e demonstramos alguns exemplos de usos.

Sintaxe do comando básico

O comando strace recebe a seguinte sintaxe:

$ strace options comando

Como instalar o comando linux strace

A maioria das distribuições de Linux modernas navio com utilitário strace por padrão. No entanto, se a Strace não estiver instalada em seu sistema por qualquer motivo, siga as etapas abaixo para instalá -lo.

No Debian / Ubuntu

Se você estiver executando sistemas baseados em Debian / Ubuntu, execute:

$ sudo apt install strace

Em Rhel / Centos

$ sudo yum install strace

Para verificar se o STRACE está instalado, você pode verificar sua versão como mostrado.

$ strace -versão

Vamos agora conferir alguns usos de exemplo.

Comando básico de strace

Em seu formato mais básico, o comando strace rastreará e exibirá chamadas do sistema, os argumentos (fechados em aparelhos quadrados ou parênteses) e a chamada executável.

No exemplo abaixo, podemos ver os argumentos de executar o script olá.sh, Ligue entre parênteses entre parênteses na primeira linha.

$ strace ./olá.sh

Na última linha, você pode ver o status de saída do comando, neste caso, 0. Isso implica que o comando foi executado com sucesso sem nenhum erro. Um código de saída de -1 significa que um erro foi encontrado durante a execução.

Conte as chamadas do sistema

Se você deseja obter o número de chamadas do sistema, use o -c opção para a contagem como mostrado.

$ strace -C ./olá.sh

A partir da saída acima, você pode ver o número de chamadas do sistema feitas, incluindo fazer as chamadas.

Exibir chamadas de sistema específicas com Strace

Além disso, você pode optar por ver a natureza das chamadas do sistema feitas com Strace usando o -e opção seguida pela natureza da chamada do sistema. No trecho mostrado, exibimos as chamadas de sistema de gravação e leitura.

$ STRACE -E Trace = Escreva ./olá.sh
$ strace -e rastrear = ler ./olá.sh

Trace Sistema de Rede de Rede

Você pode restringir o Strace a exibir chamadas de sistema de rede especificando o tipo de chamada. Aqui. rastreio = rede indica que pretendemos obter a chamada de rede do comando de rede ping 8.8.8.8 -C 4.

$ strace -e rastrear = rede ping 8.8.8.8 -C 4

Chamadas de sistema de sinal de rastreamento

Para chamadas relacionadas ao sistema, use o argumento conforme indicado no comando abaixo. O comando imprime o intervalo de sinal para o ping 8.8.8.8 -C 4 comando.

$ strace -e rastrear = sinal ping 8.8.8.8 -C 4

Imprimindo o registro de data e hora de cada chamada do sistema

Para extrair o registro de data e hora para cada chamada do sistema, use o -r opção como demonstrado no seguinte comando.

$ strace -r ping 8.8.8.8 -C 4

Como você pode ver, um registro de registro relativo é impresso para cada chamada do sistema. A diferença horária entre chamadas sucessivas do sistema é capturada e gravada.

Exibir a duração gasta em fazer chamadas do sistema

Além disso, você pode imprimir a duração do tempo gasto para cada chamada de sistema usando o -T opção como mostrado. O tempo gasto é indicado na última coluna, conforme indicado.

$ strace -t ping 8.8.8.8 -C 4

Exibir a hora exata de cada chamada do sistema

Para imprimir a hora real ou exata do sistema, invocar o -t opção como mostrado. O tempo de relógio em tempo real ou de parede é impresso na primeira coluna.

$ strace -t ./olá.sh

Exibir o ponteiro de instrução para cada chamada

Para imprimir o ponteiro de instrução para cada chamada de sistema, use o -eu opção.

$ strace -i ./olá.sh

Salve a saída de chamadas do sistema em um arquivo de texto

Finalmente, o comando strace oferece a opção de salvar a saída em um arquivo de texto, como mostrado.

$ strace -o sample_output.TXT ./olá.sh

Aqui, sample_output.TXT é o arquivo de saída, enquanto ./olá.sh é o comando cujo sistema chama que estamos traçando.

Empacotando

O comando strace é um utilitário de linha de comando prático e poderoso que ajuda a depurar aplicativos, comandos e processos, especialmente se você não tiver o código-fonte disponível. É a ferramenta preferida para desenvolvedores de software e administradores de sistemas.