Auf dieser Seite wird beschrieben, wie Sie Systemaufrufe verfolgen, um Container-Sandbox-Einschränkungen zu diagnostizieren. Es wird davon ausgegangen, dass Sie mit der Verfolgung von Systemaufrufen mithilfe von Tools wie strace
oder dtruss
vertraut sind. Wenn Sie mit dem Verfolgen von Systemaufrufen nicht vertraut sind, sollten Sie erst fortfahren, nachdem Sie sich mit den Details zu Ihrem Problem an den Google Cloud-Support gewendet haben und vom Google Cloud-Supportteam eine Einladung erhalten haben, die Systemaufrufe zu verfolgen.
Die Container-Sandbox unterstützt nicht alle in Linux unterstützten Systemaufrufe. Sie können System-Tracing-Tools wie strace
(Linux) oder dtruss
(macOS) verwenden, um die von Ihrer Anwendung ausgeführten Systemaufrufe zu untersuchen. So lassen sich die Systemaufrufe zu ermitteln, die von der Sandbox nicht unterstützt werden.
strace
(Linux) verwenden
Wenn Sie Ihren Code unter Linux ausführen, installieren und aktivieren Sie strace
:
sudo apt-get install strace
Führen Sie die Anwendung mit strace aus. Stellen Sie hierfür dem üblichen Aufruf strace -f
voran. Dabei gibt -f
an, dass alle untergeordneten Threads verfolgt werden. Beispiel: Wenn Sie Ihre Anwendung normalerweise mit ./main
aufrufen, können Sie sie mit strace ausführen, indem Sie sie mit /usr/bin/strace -f ./main
aufrufen.
Von strace zurückgegebene Logs ansehen
Die Systemlogs von strace sehen in etwa so aus:
dtruss
(macOS) verwenden
Wenn Sie Ihren Code unter macOS ausführen, verwenden Sie dtrusss
, indem Sie dem üblichen Aufruf über die Befehlszeile dtruss -a
voranstellen, z. B.:
sudo dtruss -a ./main
Verwenden Sie zur Dokumentation den Befehl man dtruss
oder rufen Sie eine der dtrace/drusss
-Websites auf.