Usa el Depurador de Cloud

Cloud Debugger puede capturar e inspeccionar la pila de llamadas y las variables locales de una aplicación activa que se ejecuta en la nube sin detener la app ni ralentizarla. Debugger es compatible con productos de Google Cloud, incluidos App Engine, Compute Engine, GKE y Cloud Run.

Debugger funciona de manera muy similar al depurador estándar del IDE y proporciona la misma interfaz de usuario, con las siguientes diferencias clave:

  • El Depurador no detiene la ejecución de la aplicación.
  • No puedes examinar una aplicación en Debugger.

Para obtener más información sobre las plataformas que admite Debugger, consulta Configura Debugger.

Requisitos

Para ejecutar el Depurador, necesitas lo siguiente:

Usa Debugger

Para usar el Depurador, haz lo siguiente:

  1. Abre el proyecto en IntelliJ.
  2. Haz clic en Run > Edit Configurations.
  3. Haz clic en + Agregar nueva configuración en la esquina superior izquierda y, luego, selecciona Google Cloud Debugger en la lista desplegable.
  4. Ingresa un nombre para la configuración en el campo Nombre.
  5. Asegúrate de que tu proyecto esté seleccionado en el campo Project (Proyecto).
  6. Haga clic en OK.
  7. Para iniciar el depurador, haz clic en Ícono Depurar Debug en la barra de herramientas.
  8. En el cuadro de diálogo Attach to an Application (Adjuntar a una aplicación), selecciona el módulo de backend que deseas depurar y haz clic en Attach (Adjuntar).

Configura la ubicación de las instantáneas

Las instantáneas captan las variables locales y las pilas de llamadas en la ubicación especificada en tu código fuente. La ubicación de la instantánea se aplica a todas las instancias en ejecución de tu aplicación.

Para configurar la ubicación de las instantáneas, sigue estos pasos:

  1. Después de vincular Debugger a una aplicación en ejecución, navega al archivo que contiene el código fuente que deseas mirar.
  2. Haz clic en la línea ejecutable de la que deseas crear una instantánea en el área de margen izquierdo, como lo harías al establecer una interrupción de línea para una aplicación local mediante el depurador normal de IDEA.
  3. En el cuadro de diálogo Configurar interrupción que aparece, selecciona Ubicación de Cloud Snapshot. Aparecerá un círculo azul en el margen para indicar la ubicación de la instantánea, y en el panel Instantáneas del Depurador se mostrarán las instantáneas pendientes.
  4. Para inhabilitar la ubicación de la instantánea, haz clic con el botón derecho en el círculo azul y desmarca la casilla de verificación Habilitada.
  5. Para quitar la ubicación de la instantánea, haz clic en el círculo azul.
Configura la ubicación de una instantánea

Obtén una instantánea

La primera vez que una instancia ejecute el código en la ubicación de las instantáneas que estableciste, el depurador toma una instantánea y la pone a disposición para verla. Puedes examinarla y usar los datos que contiene a fin de depurar la aplicación.

La etiqueta de la instantánea que aparece en el panel de instantáneas de Debugger cambia de Pending (Pendiente) a la hora en que Debugger capturó la instantánea.

Conceptos avanzados

Configura una condición de instantánea

Una condición de instantánea es una expresión booleana que le indica al Depurador que tome una instantánea solo cuando se evalúe como verdadera. Por ejemplo, x !=0. La condición es una expresión booleana completa que puede incluir operadores lógicos y numéricos, por ejemplo, score < 0 || score > 500.

Para establecer una condición de instantánea, haz lo siguiente:

  1. Haz clic con el botón derecho en la ubicación de Cloud Snapshot (el círculo azul) en el margen.
  2. En el campo Condición, ingresa la condición.

Expresiones de inspección

En ocasiones, la información que necesitas para depurar un problema no aparece de inmediato en las variables ni en los campos locales de la aplicación. En particular, cuando se ejecuta en App Engine, el administrador de seguridad evita que examines demasiado los miembros privados de las clases del sistema, como java.util.Hashmap. En casos como este, una expresión de inspección actúa como una variable local temporal efectiva para mostrar información adicional. Las expresiones de inspección pueden evaluar expresiones complejas y desviar la jerarquía de los objetos cuando se toma una instantánea.

Puedes especificar una expresión de inspección después de configurar la ubicación de las instantáneas. Las expresiones de inspección admiten las mismas características de lenguaje que las condiciones de instantáneas, que se describen en la sección Establece una condición de instantáneas.

Obtener asistencia

Para enviar comentarios o informar un problema en tu IDE de IntelliJ, ve aTools >Cloud Code >Help / About >Envía comentarios o informa un problema para informar un problema en GitHub o hacer una pregunta en Stack Overflow.

También puedes unirte al canal #cloud-code, que forma parte de la comunidad de Slack en Google Cloud.