Cette page a été traduite par l'API Cloud Translation.
Switch to English

Utiliser Cloud Debugger

Cloud Debugger permet d'enregistrer et d'inspecter la pile d'appel et les variables locales en temps réel dans une application s'exécutant dans le cloud, sans interrompre ni ralentir son exécution. Debugger est compatible avec les produits Google Cloud, y compris App Engine, Compute Engine, GKE et Cloud Run.

Debugger fonctionne de manière semblable au débogueur standard de votre IDE et fournit la même interface utilisateur, avec les principales différences suivantes:

  • Debugger ne met pas en pause l'exécution de l'application en cours d'exécution.
  • Vous ne pouvez pas suivre une application dans Debugger.

Pour plus d'informations sur les plates-formes compatibles avec Debugger, consultez la section Configurer Debugger.

Exigences

Pour exécuter Debugger, vous avez besoin des éléments suivants :

Utiliser le débogueur

Pour utiliser le débogueur, procédez comme suit :

  1. Ouvrez votre projet dans IntelliJ.
  2. Choisissez Run > Edit Configurations (Exécuter > Modifier des configurations).
  3. Cliquez sur le signe plus (+) dans l'angle supérieur gauche, puis sélectionnez Cloud Debugger dans la liste déroulante.
  4. Tapez le nom de votre configuration dans le champ Name.
  5. Assurez-vous que votre projet est sélectionné dans le champ Project.
  6. Cliquez sur OK.
  7. Pour démarrer le débogueur, cliquez sur l'icône de bug Débogage Icône de débogage de la barre d'outils.
  8. Dans la boîte de dialogue Associer à une application, sélectionnez le module backend à déboguer, puis cliquez sur Associer.

Définir un emplacement d'instantané

Un instantané enregistre la pile d'appels et les variables locales à l'emplacement spécifié du code source. L'emplacement de l'instantané s'applique à toutes les instances en cours d'exécution de votre application.

Pour définir un emplacement d'instantané :

  1. Après avoir associé Debugger à une application en cours d'exécution, accédez au fichier contenant le code source que vous souhaitez surveiller.
  2. Cliquez sur les lignes exécutables dont vous souhaitez créer un instantané dans la zone de gout de gauche, comme vous le feriez pour définir un point d'arrêt de ligne pour une application locale à l'aide du débogueur IDEA standard.

    Un cercle bleu apparaît dans la bulle pour indiquer l'emplacement de l'instantané, et le volet des instantanés Debugger affiche les instantanés en attente.

  3. Pour supprimer l'emplacement de l'instantané, cliquez sur le cercle bleu.

Dans l'exemple ci-dessous, l'instantané est positionné sur la ligne if (userAgent != null) {.

Définir un emplacement d'instantané

Obtenir l'instantané

La première fois qu'une instance exécute le code situé à l'emplacement d'instantané que vous avez défini, le débogueur enregistre un instantané et le rend disponible pour l'affichage. Vous pouvez ensuite examiner l'instantané et utiliser les données pour déboguer votre application.

Le libellé de l'instantané du volet des instantanés Debugger est passé de l'état Pending (En attente) à l'heure à laquelle Debugger a capturé l'instantané.

Afficher le suivi de pile

Concepts avancés

Définir une condition d'instantané

Une condition d'instantané est une expression booléenne qui indique au débogueur de prendre un instantané uniquement lorsque sa valeur est vraie. Par exemple, x !=0. La condition est une expression booléenne complète pouvant inclure des opérateurs logiques et numériques, comme score < 0 || score > 500 par exemple.

Expressions de contrôle

Parfois, les informations dont vous avez besoin pour déboguer un problème n'apparaissent pas immédiatement dans les variables et les champs locaux de l'application. En particulier, lorsqu'il est exécuté sur App Engine, Security Manager vous empêche d'effectuer un examen trop approfondi des membres privés des classes système telles que java.util.Hashmap. Dans de tels cas, une expression de contrôle sert de variable locale temporaire efficace pour afficher des informations supplémentaires. Les expressions de contrôle peuvent évaluer des expressions complexes et traverser des hiérarchies d'objets lorsqu'un instantané est pris.

Vous pouvez spécifier une expression de contrôle après avoir défini l'emplacement de l'instantané. Les expressions de surveillance sont compatibles avec les mêmes fonctionnalités de langage que les conditions d'instantané décrites dans la section Définir une condition d'instantané.

Assistance

Pour envoyer vos commentaires, signalez un problème sur GitHub ou posez une question sur Stack Overflow.