Traçage des appels système

Cette page explique comment utiliser le traçage des appels système pour diagnostiquer les limites du bac à sable de conteneur, en partant du principe que vous maîtrisez bien le traçage des appels système à l'aide d'outils tels que strace ou dtruss. Si vous n'êtes pas familier avec le traçage des appels système, vous ne devez l'utiliser qu'après avoir contacté l'assistance Google Cloud en indiquant les détails de votre problème, et avoir été invité à tracer les appels système par l'équipe d'assistance Google Cloud.

Le bac à sable de conteneur n'est pas compatible avec tous les appels système disponibles sous Linux. Vous pouvez utiliser des outils de traçage des appels système tels que strace (Linux) ou dtruss (macOS) pour examiner les appels système effectués par votre application, afin d'identifier ceux qui ne sont pas compatibles avec le bac à sable.

Utiliser strace (Linux)

Si vous exécutez votre code sous Linux, installez et activez strace :

sudo apt-get install strace

Exécutez votre application avec strace en faisant précéder votre appel habituel de strace -f, où -f indique de tracer tous les threads enfants. Par exemple, si vous appelez normalement votre application avec ./main, vous pouvez l'exécuter avec strace en appelant /usr/bin/strace -f ./main.

Afficher les journaux renvoyés par strace

Les journaux système de strace se présentent comme ceci :

journaux strace

Utiliser dtruss (macOS)

Si vous exécutez votre code sur macOS, utilisez dtrusss en faisant précéder votre appel habituel de dtruss -a à partir de la ligne de commande, par exemple :

sudo dtruss -a ./main

Pour obtenir de la documentation, utilisez la commande man dtruss ou accédez à l'un des sites Web dtrace/drusss.