debugging go ide goland

debugging - ¿Cómo configurar la depuración en GoLand?



ide (6)

Hago clic derecho en el proyecto (main.go inside) y selecciono "Debug ..." y funciona

introduzca la descripción de la imagen aquí

Estoy probando GoLand y escucho que el depurador es supuestamente increíble, pero no puedo encontrar documentación que explique cómo configurarlo (GoLand está en la etapa de vista previa, por lo que no es realmente sorprendente). Mi caso de uso: estoy escribiendo una API REST a la que envío solicitudes utilizando curl. ¿Podría alguien, por favor, decirme, paso a paso, cómo empezar a utilizar el depurador?

[edición 1] (movido de un comentario) Cuando hago clic en Ejecutar / Depurar (o Ejecutar / Ejecutar), aparece una ventana que me pide que edite las configuraciones. Se me ofrece una selección de varios tipos de configuraciones, trato de elegir "Ir a la aplicación" pero el botón Depurar nunca aparece en gris y no puedo hacer que se pueda hacer clic. Soy muy nuevo en GoLand, puede que me esté faltando algo obvio, pero no puedo encontrar la configuración que falta.

[edit 2] Resulta que mi espacio de trabajo no se ajustaba a las especificaciones de Go: mi código no estaba en un directorio llamado src. Ahora que es así, puedo hacer clic en Ejecutar / Depurar y GoLand parece estar haciendo lo correcto, excepto que no se detiene en los puntos de interrupción o se comporta como un depurador, mi código simplemente se ejecuta.

[editar 3] Intenté de nuevo, y funciona. Una especie de No tengo idea de por qué funciona ahora, aunque no lo hizo anteriormente y no cambié nada. Ahora los puntos de interrupción funcionan en algunas líneas, y no en otras. O el depurador se detiene en el punto de interrupción, pero espero para siempre la carga de la lista de variables. Bueno, es una vista previa, después de todo ...

[editar 4] Me informaron hoy mismo que había una nueva versión de GoLand disponible. Actualicé, y la depuración está funcionando bien para mí ahora.


Las cosas cambiaron en Goland desde que @Jamillo Santos agregó su respuesta.

Para empezar, no hay más "Aplicación Go".

La forma más sencilla es localizar el archivo que contiene la función main (). Debe haber un pequeño triángulo que apunte a él, como en la captura de pantalla adjunta:

Cuando hace clic en el pequeño triángulo verde, obtiene un menú con las opciones Ejecutar / Depurar. Cada uno creará una configuración de go build .

Puede editar esa configuración de go build y agregar los argumentos del programa para su aplicación. Por ejemplo, si su programa tiene un argumento de línea de comando de --arg=value , puede agregarlo así:


Me enfrenté a este mismo problema y lo resolví utilizando la configuración "Ir a la aplicación" (en la ventana Ejecutar / Depurar configuraciones), en lugar de la configuración "Ir a un solo archivo".

Por lo tanto, vaya a la esquina superior derecha de Gogland y "Editar configuraciones".

Luego, agregue una nueva configuración usando el perfil "Ir a la aplicación".

Después de guardar, debería poder depurar su código. o /

Una forma fácil de habilitar esta configuración es usar el método @ user1793301 y hacer clic derecho en el archivo que desea ejecutar y seleccionar "Depurar ''ir ejecutar .go''".

EXPLICACIÓN POSIBLE

AVISO: No busqué más detalles al respecto.

Hecho : la configuración de "Aplicación Go" crea el ejecutable binario antes de ejecutarlo.

Hecho : Pude ver que mirar en la salida de la consola (dentro de Goglang) es que el IDE usa el DLV como herramienta de depuración.

Hecho : Encontré una dlv debug en la documentación de DLV y parece que compila y depura el código.

Hipótesis : los chicos de Jetbrains no lo implementaron. O al menos no TODAVÍA .


Yo tuve el mismo problema.

Se eliminó y se volvió a crear la configuración de ejecución de depuración. La depuración funcionó perfectamente.


puede cambiar el nombre del archivo go a "main.go" donde tiene la función principal. Podría ser un error.


Gogland no habilitará la acción de depuración (aunque la ejecución está disponible) si su código no reside dentro de src . No hay ninguna advertencia sobre esto, por lo que podría ser realmente un dolor resolverlo.

Además, dependiendo de la estructura de su proyecto, es posible que la depuración aún no funcione. En ese caso, podría ayudar eliminar todas las configuraciones de ejecución y crear una nueva. Hay un informe de error sobre este comportamiento.

PD: Aunque el OP menciona la primera parte en una edición de la pregunta, pero creo que vale la pena mencionarlo en una respuesta.