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 e determinare le chiamate di sistema non supportate dal sandbox.

Usa 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.

Visualizza i log restituiti da strace

I log di sistema di strace hanno questo aspetto:

Esempio di log delle chiamate di sistema generati dallo strumento strace

Utilizzare 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.