Usa el Depurador de Cloud

El Depurador de Cloud 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 disminuir su velocidad. Debugger es compatible con productos de Google Cloud, que incluyen lo siguiente:App Engine ,Compute Engine ,GKE Cloud Run ,

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

  • Debugger no detiene la ejecución de la aplicación que se está ejecutando.
  • No puedes revisar 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 el Depurador

Para usar el Depurador, haz lo siguiente:

  1. Abre el proyecto en IntelliJ.
  2. Elige Run > Edit Configurations.
  3. Haz clic en el signo más (+) en la esquina superior izquierda y, luego, selecciona Cloud Debugger en la lista desplegable.
  4. Asígnale un nombre a la configuración en el campo Name (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 el ícono verde de error Debug Ícono Depurar en la barra de herramientas.
  8. En el diálogo Attach to an Application, selecciona el módulo de backend que deseas depurar y, luego, haz clic en Attach.

Configura la ubicación de una instantánea

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 adjuntar Debugger a una aplicación en ejecución, navega hasta el archivo que contiene el código fuente que deseas mirar.
  2. Haz clic en las líneas ejecutables de las que deseas crear instantáneas 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.

    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.

  3. Para quitar la ubicación de la instantánea, haz clic en el círculo azul.

En el siguiente ejemplo, la ubicación de la instantánea se establece en la línea if (userAgent != null) {.

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 en el panel Instantáneas de Debugger cambia de Pendiente a la hora en que Debugger capturó la instantánea.

Ve el seguimiento de pila

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.

Expresiones de observación

En ocasiones, la información que necesitas para depurar un problema no se manifiesta de inmediato en las variables y 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 reloj admiten las mismas funciones de lenguaje que las condiciones de instantáneas, las cuales se describen en la sección Cómo establecer una condición de instantáneas.

Obtén asistencia

Para enviar comentarios o informar un problema en tu IDE de IntelliJ, ve a Tools > Cloud Code > Help / About > . Envía comentarios o informa un problema para informar un error 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 de Google Cloud.