システムコールのトレース

このページでは、システムコールのトレースを行い、コンテナ サンドボックスの制限を診断する方法について説明します。stracedtruss などのツールでシステムコールのトレースを行った経験のある方を対象としています。システムコールのトレースに精通されていない場合は、問題の詳細を Google Cloud サポートにお問い合わせいただき、Google Cloud サポートチームからシステムコールをトレースすることに対して招待されてから作業を進めるようにしてください。

コンテナ サンドボックスは、Linux でサポートされているすべてのシステムコールに対応しているわけではありません。strace(Linux)や dtruss(macOS)などのシステムコール トレースツールを使用すると、アプリケーションから行われたシステムコールを調査し、サンドボックスでサポートされていないシステムコールを特定できます。

straceを使用する(Linux)

Linux でコードを実行する場合は、strace をインストールして有効にします。

sudo apt-get install strace

strace を有効にしてアプリケーションを実行するには、通常の呼び出しの前に strace -f を付けます。-f を指定することで、すべての子スレッドがトレースされます。たとえば、通常、./main を使用してアプリケーションを呼び出す場合は、/usr/bin/strace -f ./main を呼び出して strace で実行できます。

strace から返されたログを表示する

strace から返されるシステムログは次のようになります。

strace ログ

dtruss を使用する(macOS)

macOS でコードを実行する場合は、次のように、コマンドラインからの通常の呼び出しの前に dtruss -a を付けて dtrusss を使用します。

sudo dtruss -a ./main

ドキュメントについては、man dtruss コマンドを使用するか、dtrace/drusss のウェブサイトをご覧ください。