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. Andernfalls sollten Sie zuerst den Support kontaktieren und ihm das Problem im Detail schildern. Fahren Sie erst fort, nachdem Sie vom Supportteam zum Verfolgen der Systemaufrufe aufgefordert wurden. Google Cloud Google Cloud

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 alle von Ihrer Anwendung ausgeführten Systemaufrufe zu untersuchen, 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:

Beispiel für Systemaufruflogs, die vom Tool „strace“ generiert wurden

dtruss (macOS) verwenden

Wenn Sie Ihren Code unter macOS ausführen, verwenden Sie dtruss, 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.