Tracciamento delle chiamate di sistema

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

La sandbox del container non supporta tutte le chiamate di sistema supportate in Linux. Puoi utilizzare strumenti di tracing delle chiamate di sistema come strace (Linux) o dtruss (macOS) per esaminare le chiamate di sistema effettuate dalla tua applicazione e per determinare le chiamate di sistema non supportate dalla sandbox.

Utilizzare strace (Linux)

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

sudo apt-get install strace

Esegui l'applicazione con strace anteponendo alla chiamata abituale strace -f dove -f significa tracciare tutti i thread secondari. Ad esempio, se in genere richiami l'applicazione con ./main, puoi eseguirla con strace richiamando /usr/bin/strace -f ./main.

Visualizzare i log restituiti da strace

I log di sistema di strace hanno il seguente aspetto:

Esempio di log delle chiamate di sistema generati dallo strumento strace

Utilizzare dtruss (macOS)

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

sudo dtruss -a ./main

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