Cómo usar Stackdriver Debugger

Stackdriver Debugger es capaz de captar y, también, inspeccionar la pila de llamadas y las variables locales de una aplicación que se ejecuta en la nube, específicamente en App Engine o Compute Engine, sin detenerla o ralentizarla.

Funciona de una manera muy similar al depurador estándar del IDE y proporciona la misma interfaz de usuario, a excepción de dos diferencias clave:

  • Stackdriver Debugger no pausa la aplicación en ejecución.
  • No puedes revisar aplicaciones en Stackdriver Debugger.

En App Engine, Stackdriver Debugger solo se ejecuta en aplicaciones para Java y Kotlin, además de encontrarse habilitado automáticamente para estas. En Compute Engine, debes ejecutar la secuencia de comandos bootstrap para habilitarlo.

Requisitos

Para ejecutar Stackdriver Debugger, necesitas lo siguiente:

Cómo usar Stackdriver Debugger

Para usar Stackdriver Debugger, sigue estos pasos:

  1. Abre tu proyecto en IntelliJ.
  2. Selecciona Ejecutar > Editar configuración.
  3. Haz clic en el signo más (+) en la esquina superior izquierda y selecciona Google Stackdriver Debug en la lista desplegable.
  4. Asígnale un nombre a la configuración en el campo Nombre.
  5. Asegúrate de que tu proyecto esté seleccionado en el campo Proyecto.
  6. Haz clic en Aceptar.
  7. Haz clic en el ícono de error de color verde "depurar" para iniciar el depurador.
  8. En el cuadro de diálogo Vincular a una aplicación, selecciona el módulo de backend que deseas depurar y haz clic en Vincular.

Cómo configurar la ubicación de las instantáneas

Las instantáneas captan las variables locales y 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 Stackdriver Debugger con una aplicación en ejecución, navega hasta el archivo que contiene el código fuente que deseas ver.
  2. Haz clic en las líneas ejecutables de las que deseas crear instantáneas en el margen izquierdo, tal como lo harías cuando estableces una interrupción en una línea para una aplicación local que use el depurador habitual del IDEA.

    Aparecerá un círculo azul en el margen para indicar la ubicación de la instantánea; además, en el panel de instantáneas de Stackdriver Debugger, se muestran las que están pendientes.

  3. Haz clic en el círculo azul para quitar la ubicación de las instantáneas.

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

Configurar la ubicación para las instantáneas

Cómo obtener 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. De esta forma, 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 Stackdriver Debugger cambia de Pendiente a la hora en que Stackdriver la creó.

Ver seguimiento de pila

Conceptos avanzados

Configurar 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 revisión

En ocasiones, la información que necesitas para depurar un problema no es visible inmediatamente en los campos y las variables locales de la aplicación. En particular, cuando ejecutas App Engine, el administrador de seguridad evita que indagues en la información de los miembros privados de la clase del sistema, como java.util.Hashmap. En casos como este, una expresión de revisión sirve como una variable temporal efectiva para mostrar información adicional. Las expresiones de revisió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 revisión después de configurar la ubicación de las instantáneas. Las expresiones de revisión admiten las mismas funciones de lenguaje que las condiciones de las instantáneas que describimos arriba.

Más información

Para obtener un análisis en profundidad de las características de Stackdriver Debugger en IntelliJ IDEA, consulta el instructivo del Depurador de Google Cloud de IntelliJ IDEA.

Cómo obtener asistencia

Si deseas enviar comentarios, informa problemas en GitHub o haz preguntas en Stack Overflow.
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Cloud Code para IntelliJ