Tracciamento delle chiamate di sistema

Questa pagina descrive l'utilizzo del tracciamento delle chiamate di sistema per diagnosticare le limitazioni della sandbox del container e presuppone che tu abbia una certa familiarità con il tracciamento delle chiamate di sistema, utilizzando strumenti come strace o dtruss. Se non hai familiarità con la tracciatura delle chiamate di sistema, procedi solo dopo aver contattato l' Google Cloud assistenza con i dettagli del problema e aver ricevuto l'invito a tracciare le chiamate di sistema dal team di assistenza Google Cloud .

La sandbox del contenitore non supporta tutte le chiamate di sistema supportate in Linux. Puoi utilizzare strumenti di tracciamento delle chiamate di sistema come strace (Linux) o dtruss (macOS) per esaminare le chiamate di sistema effettuate dalla tua applicazione che non sono supportate dalla sandbox.

Utilizzo di strace (Linux)

Se esegui il codice su Linux, installa e attiva strace:

sudo apt-get install strace

Esegui l'applicazione con strace anteponendo all'invocazione abituale strace -f, dove -f indica di tracciare tutti i thread secondari. Ad esempio, se normalmente richiami l'applicazione con ./main, puoi eseguirla con strace richiamando /usr/bin/strace -f ./main.

Visualizzazione dei log restituiti da strace

I log di sistema di strace hanno questo aspetto:

Log strace

Utilizzo di dtruss (macOS)

Se esegui il codice su macOS, utilizza dtrusss anteponendo dtruss -a alla chiamata dalla riga di comando, ad esempio:

sudo dtruss -a ./main

Per la documentazione, utilizza il comando man dtruss o visita uno dei siti web dtrace/drusss.