Débogage

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Studio offre de nombreux outils de débogage communément trouvés dans les environnements de développement intégrés (IDE).Ces outils vous aident à résoudre des erreurs et à inspecter les scripts ligne par ligne lorsqu'ils s'lancer.Les informations de débogage sont affichées dans la montre, pile d'appels, points d'arrêt et fenêtre de sortie pour que vous puissiez les inspecter.

Flux de travail général

Si vous remarquez un problème dans votre expérience ou si vous voulez vérifier qu'il fonctionne comme vous l'intendez, vous pouvez déboguer le code associé comme suit :

  1. Insérer des points de pause sur les lignes de code que vous voulez examiner.

  2. Dans l'onglet script, cliquez sur jouer ou exécuter dans l'onglet test pour démarrer une session de test, également appelée session de débogage.

    Playtest options in Script tab.
  3. Lorsqu'un script atteint un point d'arrêt, la session de test de jeu s'arrête.Inspectez les fenêtres Montre, pile d'appels et sortie pour vous aider à diagnostiquer et à comprendre le problème.

  4. Insérez des points de pause supplémentaires sur des lignes de code qui n'ont pas encore été exécutées pour inspecter des données supplémentaires.Désactivez ou supprimez les points d'arrêt dont vous n'avez plus besoin.

  5. Dans l'onglet script , cliquez sur arrêter pour terminer la session de débogage.

Répétez les étapes précédentes jusqu'à ce que vous résolviez le problème ou trouviez sa cause racine.Au fur et à mesure que vous apprenez le flux de travail général, vous pouvez configurer les points de rupture pour qu'ils ne se brisent que si certaines conditions sont remplies, pour imprimer un message dans la fenêtre sortie, et pour s'exécuter uniquement sur le client ou le serveur.Pour plus d'informations, voir Configurations de point d'arrêt.

Insérer des points de rupture

Les points de rupture sont des points de contrôle qui mettent en pause ou « rompent » l'exécution de vos scripts à des lignes spécifiques.Vous pouvez utiliser les pauses pour inspecter et déboguer votre expérience, regarder les variables, et inspecter le pilon d'appel.Les points de rupture sont l'une des façons les plus efficaces de déboguer les fonctions, ce qui en fait l'une des principales outils de débogage.Vous pouvez insérer un point d'arrêt à n'importe quelle ligne de code exécutable.

Pour insérer un point de rupture standard à une ligne de code, cliquez gauche sur la marge à droite de son numéro de ligne.Vous pouvez également faire un clic droit sur la marge et cliquer sur Insérer point de rupture.Le point d'arrêt apparaît sous forme de point rouge.Pour le désactiver, cliquez sur le point.

Breakpoint in gutter is a red dot

Passer à travers le code

Si vous insérez un point d'arrêt à une ligne dans un script, le script s'arrête avant d'exécuter cette ligne.Une flèche jaune appelée « débogueur » indique quelle ligne de code s'exécute ensuite.

Active breakpoint in the debugger shows yellow arrow

Lorsque le script s'arrête, exécutez le code suivant une ligne à la fois en passant dessus avec les boutons dans l'onglet script.Les boutons apparaissent également dans le coin supérieur gauche de la fenêtre pile d'appels.En parcourant le code, surveillez comment votre expérience change lorsque la ligne actuelle s'exécute.

Debugging tools indicated in Script tab

Le tableau suivant résume les trois façons de parcourir le code.Pour poursuivre l'exécution de votre code après avoir atteint un point d'arrêt, cliquez sur Reprendre dans l'onglet Script .

BoutonActionRaccourciAvertissement
Button to step into a line of code Passer dans F11Le bouton Passer dans déplace le débogueur dans le code de la fonction sur la ligne actuelle.S'il n'y a pas de fonction sur la ligne actuelle, le débogueur se déplace vers la ligne suivante.
Button to step over a line of code Passer au-dessus F10Le bouton Passer au-dessus déplace le débogueur vers la prochaine ligne de code, ne se déplaçant pas dans les fonctions.
Button to step out of a line of code Étape suivante ShiftF11Le bouton Étape suivante déplace le débogueur hors de la fonction actuelle et vers la prochaine ligne de code après l'appel de la fonction.Si la ligne actuelle n'est pas à l'intérieur d'une fonction, le débogueur se déplace vers la ligne suivante.

Inspecter le code

Lorsqu'un point de pause interrompt l'expérience pendant un test de jeu, vous pouvez inspecter la fenêtre Montre de la fenêtre, la fenêtre pile d'appels, la fenêtre sortie et la fenêtre éditeur de scripts pour trouver des informations sur les valeurs variables et les exécutions de fonctions.Avec ces informations, vous pouvez trouver la cause racine du problème dans votre expérience.

Regarder

La fenêtre Montre a deux onglets : Variables et Mes montres .L'onglet Variables affiche des informations sur les variables actuelles en cours d'exécution, et l'onglet Mes montres affiche la valeur des variables ou des expressions que vous définissez.Les deux onglets affichent des informations avant que la ligne s'exécute.

L'onglet variables a les colonnes suivantes :

  • Nom – Le nom déclaré de la variable.
  • Scope – La portée de la variable : où elle peut être "vue" et accessible, comme locale, globale ou Upvalue.
  • Valeur – La valeur actuelle de la variable.
  • Type de données – Le type de données de la variable.

L'onglet Mes montres a les colonnes suivantes :

  • Expression – L'expression que vous voulez inspecter.
  • Valeur – La valeur actuelle de l'expression.
  • Type de données – Le type de données de l'expression.

Dans l'onglet variables , vous pouvez filtrer la portée des variables en cliquant sur l'icône de filtre.Vous pouvez également trier les lignes en cliquant sur le nom de la colonne à trier.La fenêtre d'horloge fournit des vues étendues et réduites des tables.

Watch Window with variable values

Pour inspecter le code dans la fenêtre de surveillance :

  1. Si la fenêtre Montre n'est pas ouverte, alors cliquez sur Montre dans l'onglet Affichage.

  2. Lorsque votre session de test de jeu s'arrête à un point d'arrêtde pause, réfléchissez à la manière dont vous vous attendez à ce que la ligne actuelle change les valeurs des variables dans ce script.

  3. En parcourant le code, observez comment la valeur des variables change dans l'onglet variables .Si vous voulez regarder une expression qui n'est pas dans l'onglet Variables, ouvrez l'onglet Mes montres .Cliquez sur une ligne vide dans la colonne Expression, puis saisissez l'expression dedans.Si vous voulez regarder une variable dans l'éditeur de scripts, double-cliquez sur le nom de la variable, puis cliquez sur Ajouter une montre .

  4. Comparez les valeurs des variables et des expressions à ce que vous attendez et ce que vous voyez dans la fenêtre de surveillance.S'il y a une différence entre la façon dont vous vous attendez à ce que les variables changent et la façon dont elles changent réellement, les variables ou les fonctions qui interagissent avec elles peuvent causer des problèmes ou des bugs.

Pile d'appels

La fenêtre pile d'appels montre quelle ligne de code sera exécutée ensuite lorsque le débogueur atteint un point d'arrêt.La pile d'appels indique la ligne à partir de laquelle vous appelez une fonction et, si vous appelez la fonction dans d'autres fonctions, l'ordre des appels de fonction et les lignes que vous appelez les autres fonctions.La fonction principale de la pile d'appels est la dernière appelée et la première à s'exécuter.Vous pouvez utiliser le pilon d'appels pour vérifier si l'ordre des appels de fonction dans vos scripts correspond à votre modèle mental des appels de fonction.

Call Stack in Studio

Si vous avez plusieurs points de rupture dans différents scripts, ils peuvent interrompre la session de test de jeu en même temps.Vous pouvez sauter aux points de pause en cliquant sur la flèche à côté du nom du script dans la fenêtre d'empilement d'appels.Si vous cliquez sur Reprendre , vous franchissez ensuite tous les points d'arrêt qui se sont arrêtés en même temps.

Call Stack with multiple breakpoints

Pour inspecter le code dans la fenêtre d'empilement d'appels pendant une session de débogage :

  1. Si la fenêtre pile d'appels n'est pas ouverte, alors cliquez sur pile d'appels dans l'onglet affichage.

  2. Lorsque votre expérience s'arrête à un point de pause, réfléchissez à la manière dont vous vous attendez à ce que l'ordre des appels de fonction soit dans ce script.

    Script Editor with two functions and one breakpoint
  3. La pile d'appels montre l'ordre des appels de fonction.Si le point d'arrêt se trouve à l'intérieur d'une fonction, la pile d'appels montre quelle fonction appelle cette fonction, si elle en existe.La pile d'appels montre également le nom et le numéro de ligne de chaque fonction.Cliquez sur la ligne pour qu'une fonction s'y saute.

    Click in Call Stack to jump to line
  4. Comparez l'ordre des appels de fonction que vous avez pensé dans l'étape 2 et l'ordre réel de l'étape 3.S'il y a des différences, il y a une différence entre la façon dont vous vous attendez au comportement du code et la façon dont il se comporte réellement, ce qui provoque des problèmes et des bugs potentiels.

Sortie

La fenêtre Sortie, accessible à partir de l'onglet Affichage, affiche les erreurs capturées lors de l'exécution de scripts, les messages du moteur Roblox, les messages des appels à print() et les erreurs des appels à warn() .

Éditeur de scripts

Le débogueur est intégré avec le éditeur de scripts.Lorsque votre expérience s'arrête à un point de pause dans un script, vous pouvez passer la souris sur le nom d'une variable pour voir sa valeur.Par exemple, vous pouvez voir la valeur d'une table que vous passez en argument dans un appel de fonction.

Mouseover a variable in Script Editor to show value

Configurations de point de rupture

Vous pouvez configurer des points de rupture pour qu'ils ne se brisent que si certaines conditions sont remplies, pour imprimer un message dans la fenêtre sortie, et pour s'exécuter uniquement sur le client ou le serveur.Vous pouvez également mélanger ces configurations ensemble pour répondre au mieux à vos besoins de débogage.

Modifier les points de rupture

Vous pouvez modifier la configuration d'un point de rupture à tout moment, y compris pendant les sessions de test de jeu.Si vous modifiez des points de pause pendant une session de test de jeu, les modifications persistent même après que vous l'ayez terminée.Vous pouvez également modifier un point de pause qui pause activement votre session de test de jeu, mais les modifications ne s'appliquent pas jusqu'à la prochaine session de test de jeu.

Pour modifier la configuration d'un point de rupture :

  1. Faites un clic droit sur le point d'arrêt, puis cliquez sur Éditer le point d'arrêt .

    Right click to edit a breakpoint in Studio
  2. Dans la fenêtre Éditer le point de rupture , configurez le point de rupture comme vous le souhaitez.

    Edit Breakpoint window in Studio

Conditions, message de journal et options

Pour chaque point de rupture, vous pouvez définir sa condition , message de journal , poursuivre l'exécution et contexte .

La condition est l'expression qui détermine si le point d'arrêt se déclenche.La condition est facultative.Si la condition est vide, le point de rupture s'active toujours.Si la condition existe, alors le point de rupture ne s'active que si la condition est vraie.Par exemple, si vous voulez que le point de rupture s'active seulement si la variable n est égale à 42, alors définissez la condition comme n == 42 .Les conditions sont utiles pour déboguer la manière dont les fonctions s'exécutent lorsque certaines variables ont certaines valeurs ou si vous voulez rompre seulement sur certaines exécutions dans une boucle.

Le message journalisation est l'expression qui imprime dans la fenêtre sortie lorsque la condition est vraie.Le format du message journal est le même que l'argument d'une déclaration print() .Par exemple, définissez le message journal comme "The value of n:", n pour imprimer le même message que print("The value of n:", n).Vous pouvez ajouter et supprimer des messages d' жур без avoir à arrêter l'exécution, à l'inverse des déclarations d'impression.

L'option Continuer l'exécution détermine si le point d'arrêt interrompt le script s'il est activé.C'est utile si vous voulez enregistrer les valeurs des variables ou des expressions sans interrompre l'exécution.Cette option est désactivée par défaut.

Le contexte d'un point d'arrêt détermine si le point d'arrêt doit s'activer sur le client, le serveur ou l'éditeur.Si le contexte est client, alors le point d'arrêt se déclenche dans les scripts côté client.Si le contexte est serveur, le point d'arrêt se déclenche dans les scripts côté serveur.Si le contexte est Édition, le point d'arrêt se déclenche lorsque vous déboguez des plugins.Si vous cliquez sur context personnalisé, la fenêtre indique le contexte actuel.

Edit Breakpoint Window shows Custom Context

Points de rupture conditionnels et points de journalisation

Studio offre des variations nommées de points de rupture pour accélérer l'insertion des points de rupture.Pour insérer une variation nommée, faites un clic droit sur la marge à la droite du numéro de ligne de celle-ci, puis cliquez sur la variante que vous voulez insérer.

Right click to insert a breakpoint

Un point d'arrêt conditionnel est un point d'arrêt avec une condition et une exécution continue désactivée.Les points d'arrêt conditionnels mettent en pause votre script seulement si une condition est vraie, ils sont donc utiles pour déboguer la façon dont les fonctions s'exécutent lorsque certaines variables ont certaines valeurs.Les points de rupture conditionnels utilisent les valeurs des variables avant l'exécution de la ligne.Lorsque vous insérez un point de rupture conditionnel, votre curseur se focalise sur l'option condition pour que vous puissiez la définir rapidement.

Un point d'enregistrement est un point d'arrêt avec un message journal et une exécution continue activée.Logpoints enregistre les messages dans la fenêtre sortie sans interrompre vos scripts, afin qu'ils soient utiles pour déboguer les valeurs variables.Les points d'enregistrement utilisent les valeurs des variables avant l'exécution de la ligne.Lorsque vous insérez un point de journal, votre curseur se focalise sur le message de journal pour que vous le configuriez rapidement.

Désactiver les points de rupture

Il existe de nombreuses façons de désactiver et de réactiver un point de pause :

  • Cliquez sur l'icône du point de rupture.
  • Modifiez le point de rupture et activez sa case à cocher Activée.
  • Faites un clic droit sur l'icône de point d'arrêt et cliquez sur Désactiver le point d'arrêt ou Activer le point d'arrêt.

Supprimer les points de rupture

Pour supprimer un point de pause, cliquez avec le milieu de sa icône. Vous pouvez également cliquer avec le bouton droit de sa icône et cliquer sur Supprimer le point de pause .

Fenêtre des points de rupture

La fenêtre des points de rupture affiche tous les points de rupture dans votre expérience.Pour ouvrir la fenêtre des points de rupture, cliquez sur l'onglet Affichage en haut de Studio, puis cliquez sur Points de rupture.

Breakpoints window in Studio

La fenêtre des points de rupture a les colonnes suivantes : non étiquetées, Script, Ligne, Ligne source, Condition, Message journal et Continuer l'exécution.Les colonnes non étiquetées, Script et Ligne s'affichent toujours, mais vous pouvez basculer les autres colonnes en cliquant sur les trois points dans le coin supérieur droit de la fenêtre.

Dans la colonne non intitulée, l'étiquette (x3) indique le nombre de points de rupture sur la même ligne de code, et l'icône indique la configuration des points de rupture.Les points de rupture sur la même ligne partagent la même condition, le même message de journal et poursuivent l'exécution dans un contexte différent.Vous pouvez modifier la configuration d'un point de rupture dans la fenêtre des points de rupture.Par exemple, vous pouvez modifier la condition d'un point de rupture en modifiant le champ de texte dans sa colonne condition.

Edit the Condition of a Breakpoint in the Breakpoints Window

Vous pouvez activer et désactiver les points de rupture en cliquant sur son icône de point de rupture dans la colonne Activée.Vous pouvez également cliquer sur les boutons suivants pour activer, désactiver et supprimer certains ou tous les points de rupture.

BoutonAction
Button to disable all breakpointsDésactivez tous les points de rupture. Si des points de rupture sont désactivés, activez-les tout.
Button to delete all breakpointsSupprimez tous les points de rupture.

Icônes de point de rupture

L'icône d'un point de rupture dépend de si elle est activée, a une condition et a un message journal.Si un point de rupture a un message de journal, il apparaît comme un point de journal, quelle que soit la présence ou non d'une condition.

NomIcôneActivéConditionsMessage journalisation
Point de ruptureOuiNonNon
AucunAucunAucun
Point de rupture conditionnelOuiOuiNon
AucunOuiNon
Point de journalisationOuiPeut-êtreOui
NonPeut-êtreOui

Outils de débogage supplémentaires

En plus du débogueur, Studio offre des outils de débogage supplémentaires pour que vous puissiez résoudre les problèmes et les bugs dans votre expérience.

Barre de commande

La barre de commande permet d'exécuter des commandes Luau pendant que l'expérience est en cours d'exécution .Il est disponible dans Studio à partir de l'onglet Affichage et dans la console de développeur.

Console de développeur

La console de développeur fournit une large gamme de détails, y compris la sortie client et serveur, l'utilisation de la mémoire, les performances réseau et plus encore.Pour ouvrir la console de développeur pendant que vous testez ou jouez à une expérience, saisissez /console dans le chat ou appuyez sur F9 .Pour plus d'informations, voir console de développeur .

Fichiers journaux

Lorsqu'un script imprime ou échoue dans Studio ou dans l'application du joueur, l'application enregistre le message dans un fichier journal dans le système de fichiers local.Ces fichiers se trouvent à différents endroits en fonction du système d'exploitation.

Fenêtres

Pour accéder aux journaux sur Windows :

  1. Ouvrez Explorateur de dossiers .
  2. Accédez au répertoire %LOCALAPPDATA%\Roblox\logs.
  3. Double-cliquez sur un journal pour l'ouvrir. Les journaux avec la même valeur XXXXX sont de la même session Studio.

Mac

Pour accéder aux journaux sur Mac :

  1. Ouvrez Explorateur .
  2. Dans la barre de menu, sélectionnez AllerAller dans le dossier... .
  3. Dans le dialogue, entrez ~/Library/Logs/Roblox.
  4. Double-cliquez sur le résultat pour naviguer dans le répertoire des journaux Roblox.
  5. À l'intérieur du répertoire, double-cliquez sur un journal pour l'ouvrir.

iOS

Vous pouvez collecter les journaux iOS en utilisant un Mac ou en utilisant un appareil iOS.

Pour accéder aux journaux iOS sur un Mac :

  1. Connectez l'appareil iOS à un Mac.
  2. Ouvrez Explorateur .
  3. Accédez à Utilities et ouvrez l'application Console .
  4. Pour remplir les journaux en temps réel dans l'application Console, sélectionnez l'appareil iOS dans la barre latérale, cliquez sur le bouton Commencer et reproduisez le problème sur l'appareil iOS.
  5. Pour remplir les journaux archivés dans l'application Console, exécutez sudo log collect --device-name "[iOS Device Name]" dans le terminal .Assurez-vous qu'il n'y a pas d'apostrophes dans le nom du appareilou vous risquez d'obtenir une erreur lors de l'exécution de la commande.

Android

Pour accéder aux journaux d'accès sur Android :

  1. Accédez à paramètres > système > options développeur .
  2. Activez les options développeur .
  3. Sur un ordinateur, téléchargez et installez Android Studio.
  4. Dans Android Studio, cliquez sur Logcat .
  5. Connectez l'appareil Android à l'ordinateur pour remplir automatiquement Logcat avec des journaux.