Como rastrear chamadas do sistema

Nesta página, descrevemos o uso do rastreamento de chamadas do sistema para diagnosticar limitações do sandbox de contêiner e presumimos que você tenha familiaridade com o rastreamento de chamadas do sistema, usando ferramentas como strace ou dtruss. Se você não estiver familiarizado com o tema, prossiga somente depois de entrar em contato com o Google Cloud suporte do Google Cloud com os detalhes do problema e depois de ser convidado a rastrear as chamadas do sistema pela Google Cloud equipe de suporte.

O sandbox do contêiner não aceita todas as chamadas do sistema compatíveis com o Linux. Você pode usar ferramentas de rastreamento de chamadas do sistema, como strace (Linux) ou dtruss (macOS), para examinar os syscalls feitos pelo aplicativo que não são compatíveis com o sandbox.

Como usar strace (Linux)

Se estiver executando seu código no Linux, instale e ative strace:

sudo apt-get install strace

Execute seu aplicativo com strace colocando o prefixo strace -f em que -f significa rastrear todas as linhas de execução filhas. Por exemplo, se você invocar o aplicativo com ./main, poderá executá-lo com strace invocando /usr/bin/strace -f ./main.

Como visualizar os registros retornados pelo strace

Os registros do sistema do strace são assim:

Exemplo de registros de chamadas de sistema gerados pela ferramenta strace

Como usar dtruss (macOS)

Se você estiver executando o código no macOS, use dtruss. Para isso, adicione dtruss -a na linha de comando antes da invocação normal. Por exemplo:

sudo dtruss -a ./main

Para documentação, use o comando man dtruss ou acesse um dos sites dtrace/drusss (em inglês).