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 (em inglês) ou dtruss. Se você não conhecer o rastreamento de chamadas do sistema, prossiga somente depois de entrar em contato com a equipe de suporte do Google Cloud com os detalhes do problema e receber o convite deles para rastrear essas chamadas.

O sandbox do contêiner não aceita todas as chamadas do sistema compatíveis com o Linux. Use ferramentas de rastreamento de chamadas do sistema, como strace (Linux) ou dtruss (macOS), para examinar os syscalls feitos pelo aplicativo e ajudar a determinar os syscalls 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:

Registros de strace

Como usar dtruss (macOS)

Se você estiver executando o código no macOS, use dtrusss. 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).