Systemaufrufe verfolgen

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:

strace-Logs

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.