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 :
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
.