Trazado de llamadas al sistema

En esta página se describe cómo usar el seguimiento de llamadas al sistema para diagnosticar las limitaciones del sandbox de contenedores. Se da por hecho que tienes cierta familiaridad con el seguimiento de llamadas al sistema y con herramientas como strace o dtruss. Si no estás familiarizado con el seguimiento de llamadas al sistema, solo debes continuar después de ponerte en contacto con el equipo de asistencia de Google Cloud para explicarle los detalles del problema y de que el equipo de asistencia de Google Cloud te haya invitado a hacer un seguimiento de las llamadas al sistema.

El sandbox del contenedor no admite todas las llamadas al sistema que se admiten en Linux. Puedes usar herramientas de seguimiento de llamadas al sistema, como strace (Linux) o dtruss (macOS), para examinar las llamadas al sistema que hace tu aplicación y determinar cuáles no son compatibles con la sandbox.

Usar strace (Linux)

Si ejecutas el código en Linux, instala y habilita strace:

sudo apt-get install strace

Ejecuta tu aplicación con strace añadiendo strace -f antes de la invocación habitual, donde -f significa que se deben monitorizar todos los subprocesos secundarios. Por ejemplo, si normalmente invocas tu aplicación con ./main, puedes ejecutarla con strace invocando /usr/bin/strace -f ./main.

Ver los registros devueltos por strace

Los registros del sistema de strace tienen este aspecto:

Registros de strace

Usar dtruss (macOS)

Si ejecutas el código en macOS, usa dtrusss añadiendo dtruss -a a la invocación habitual desde la línea de comandos. Por ejemplo:

sudo dtruss -a ./main

Para consultar la documentación, usa el comando man dtruss o visita uno de los dtrace/drussssitios web.