追蹤系統呼叫

本頁說明如何使用系統呼叫追蹤功能診斷容器沙箱限制,並假設您已熟悉系統呼叫追蹤功能,並使用 stracedtruss 等工具。如果您不熟悉系統呼叫追蹤功能,請先聯繫 Google Cloud 支援團隊,並提供問題的詳細說明。在 Google Cloud 支援團隊邀請您追蹤系統呼叫之後,再繼續後續作業。

容器沙箱並未針對 Linux 支援的所有系統呼叫提供支援。您可以使用 strace (Linux) 或 dtruss (macOS) 之類的系統呼叫追蹤工具,檢查應用程式所做的系統呼叫,藉此協助判斷沙箱不支援哪些系統呼叫。

使用 strace (Linux)

如果您在 Linux 上執行程式碼,請安裝並啟用 strace

sudo apt-get install strace

strace -f 啟動您慣常的叫用作業,透過 strace 來執行您的應用程式,其中 -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 網站的其中一個網站。