web-dev-qa-db-fra.com

Comment configurer le débogage dans GoLand?

J'essaie GoLand et j'entends dire que le débogueur est censé être génial, mais je ne trouve aucune documentation expliquant comment le configurer (GoLand est en phase de prévisualisation, donc ce n'est pas vraiment surprenant). Mon cas d'utilisation: j'écris une API REST à laquelle j'envoie des demandes à l'aide de curl. Quelqu'un pourrait-il me dire, étape par étape, comment utiliser le débogueur?

[edit 1] (déplacé du commentaire) Lorsque je clique sur Exécuter/Déboguer (ou Exécuter/Exécuter), une fenêtre s'affiche et me demande de modifier les configurations. On me donne le choix entre plusieurs types de configurations, j'essaie de choisir "Aller à l'application" mais le bouton Déboguer n'est jamais grisé et je ne parviens pas à le rendre cliquable. Je suis très nouveau dans GoLand, il me manque peut-être quelque chose d’évident, mais je ne trouve aucun paramètre manquant.

[edit 2] Il s'avère que mon espace de travail n'était pas conforme aux spécifications Go: mon code n'était pas dans un répertoire nommé src. Maintenant que c’est le cas, je peux cliquer sur Exécuter/Déboguer et GoLand semble faire le bon choix, à moins qu’il ne s’arrête pas aux points d’arrêt ou se comporte autrement comme un débogueur, mon code est simplement exécuté.

[edit 3] Essayé à nouveau, et ça marche. Sorte de. Je ne sais pas pourquoi cela fonctionne maintenant, même si cela n’avait pas été fait auparavant et que je n’ai rien changé. Les points d'arrêt fonctionnent maintenant sur certaines lignes et non sur d'autres. Ou le débogueur s’arrête au point d’arrêt, mais j’attends pour toujours que la liste des variables soit chargée. Eh bien, c’est un est un aperçu, après tout ...

[edit 4] On m'a informé aujourd'hui même qu'une nouvelle version de GoLand était disponible. J'ai mis à niveau et le débogage fonctionne bien pour moi maintenant.

17
Zoyd

Gogland n'activera pas l'action de débogage (bien que l'exécution soit disponible) si votre code ne réside pas dans src. Il n'y a pas d'avertissement à ce sujet, il pourrait donc être vraiment difficile de résoudre ce problème.

De plus, en fonction de la structure de votre projet, il se peut que le débogage ne fonctionne toujours pas. Dans ce cas, il peut être utile de supprimer toutes les configurations d’exécution et d’en créer une nouvelle. Il y a un rapport de bogue à propos de ce comportement.

PS: Bien que le PO mentionne la première partie de la question, mais pense qu’il vaut la peine de le mentionner dans une réponse.

9
Koraktor

Je faisais face au même problème et j'ai résolu le problème en utilisant la configuration "Go Application" (dans la fenêtre Run/Debug Configurations), au lieu de la configuration "Go Single File".

Alors, allez dans le coin supérieur droit du Gogland et cliquez sur "Modifier les configurations". 

 Opening the Run/Debug Configurations

Ajoutez ensuite une nouvelle configuration à l’aide du profil "Go Application".

 Run/Debug Configurations window

Après l'enregistrement, vous devriez pouvoir déboguer votre code. o /

Un moyen simple d'activer cette configuration consiste à utiliser la méthode @ user1793301, à cliquer avec le bouton droit de la souris sur le fichier que vous souhaitez exécuter et à sélectionner "Debug 'go run .go'".


EXPLICATION POSSIBLE

AVIS: je n'ai pas cherché d'autres détails à ce sujet.

Fact: La configuration "Go Application" crée l’exécutable binaire avant de l’exécuter.

Fact: j'ai pu voir en regardant la sortie de la console (à l'intérieur du Goglang) que le IDE utilise le DLV comme outil de débogage.

Fact: J'ai trouvé un dlv debug dans Documentation DLV et il semble compiler et déboguer le code.

Hypothèse: Les gars de Jetbrains ne l’ont pas implémenté. Ou du moins pas encore .

4
Jamillo Santos

J'ai eu ce problème exact. 

Supprimé et recréé la configuration d'exécution du débogage. Le débogage a ensuite parfaitement fonctionné.

1
Larsern

Les choses ont changé en goland depuis que @Jamillo Santos a ajouté sa réponse.

Pour commencer, il n'y a plus de "Go Application".

Le moyen le plus simple est de localiser le fichier contenant la fonction main () . Un petit triangle pointant vers elle devrait apparaître, comme dans la capture d'écran ci-jointe:  main function declaration

Lorsque vous cliquez sur le petit triangle vert, vous obtenez un menu avec les options Exécuter/Déboguer . Chacun créera une configuration go build.

Vous pouvez modifier cette configuration go build et ajouter les arguments du programme pour votre application . Par exemple, si votre programme a un argument de ligne de commande de --arg=value, vous pouvez l'ajouter comme suit:  enter image description here

0
Elad Tabak