Aide MetaEditor

Débogage

Il est difficile d'éliminer les erreurs lors de l'écriture de programmes complexes. MetaEditor vous offre un débogueur intégré pour vous aider à résoudre ce problème. Le débogage d'applications consiste en la possibilité d'exécuter le programme pas-à-pas, de calculer les variables locales, de placer des points d'arrêt à des endroits prédéfinis.

Afin de commencer à déboguer, la fenêtre du fichier principal du projet doit être active (*.MQ5). Pour déboguer des fichiers "Include" (*.MQH), il est nécessaire de lancer le débogage du fichier dans lequel ils sont inclus.

Le processus de débogage est décrit plus en détails plus loin :

Présélection

Avant de commencer le débogage d'un programme, il est nécessaire de vérifier ses paramètres dans l'onglet "Débogage" de la fenêtre des options de MetaEditor. Dans cette fenêtre, vous pouvez spécifier un symbole et une période de graphique avec lesquels le débogage des applications sera effectué. Ce graphique sera créé temporairement à chaque fois qu'un débogage sera lancé, il sera supprimé après la fin du débogage.

Le modèle "debug.tpl" situé dans le répertoire /profiles/templates du terminal client est appliqué au graphique créé pour le débogage.

Points d'Arrêt

Un point d'arrêt est une commande qui se déclenche lorsque l'exécution du programme passe au niveau d'une ligne indiquée et stoppe le programme à cet endroit. Les points d'arrêt permettent d'analyser le comportement du programme à un endroit sélectionné : voir les valeurs des variables, la pile des fonctions. Le débogage peut ensuite être continué ou stoppé.

Avant de commencer à déboguer, placez ces points d'arrêts aux positions désirées dans le code. Pour ce faire, double cliquez avec le bouton gauche de la souris sur le champ gris près de la bordure gauche de la ligne de code. Vous pouvez également placer le curseur de la souris sur la ligne désirée et exécutez la commande "Basculer le point d'arrêt Point d'arrêt à bascule" du menu "Déboguer" ou de la barre d'outils "Standard", ou vous pouvez également appuyer sur la touche "F9". Les points d'arrêt sont désactivés de la même façon.

Point d'arrêt

Lancement du Débogage

Pour démarrer le débogage, il est nécessaire d'ouvrir le fichier d'un programme, en le sélectionnant dans la fenêtre "Navigateur". Exécutez ensuite la commande "Commencer le Débogage Commencer le Débogage" du menu "Déboguer" ou de la barre d'outils "Standard", ou vous pouvez également appuyer sur la touche "F5". Le programme à déboguer sera alors attaché à un graphique spécial dans le terminal de trading. Dès que l'exécution du programme atteint la ligne contenant le premier point d'arrêt, il sera stoppé. Le point où l'exécution est stoppée sera changé en Point d'arrêt Déclenché. De plus, l'onglet "Déboguer" apparaîtra dans la fenêtre "Boîte à Outils". Dans sa partie gauche, la pile des appels de fonctions sera affichée.

Le débogage des applications est effectué en conditions réelles en utilisant les prix reçus du serveur. Un graphique temporaire spécial, créé spécialement pour le débogage, n'a aucune différence avec les graphiques ordinaires ouverts dans le terminal client.

Espionner les Expressions

Pendant le débogage, vous pouvez surveiller les valeurs des différentes expressions (variables) obtenues à cette étape de l'exécution du programme. A cette fin, la partie droite de l'onglet "Déboguer" de la fenêtre "Boîte à Outils" est utilisée. Une expression peut être ajoutée des différentes façons suivantes :

  • Pendant le débogage, appelez le menu contextuel sur l'expression désirée et sélectionnez la commande "Ajouter un espion Ajouter horloge" ou appuyez sur la combinaison de touche "Shift+F9" ;
  • Dans la partie droite de l'onglet "Déboguer" de la fenêtre "Boîte à Outils", appelez le menu contextuel et exécutez la commande "Ajouter Ajouter" ou appuyez sur la touche "Insérer". Une nouvelle ligne apparaîtra alors et dans le champ "Expression", vous devrez saisir le nom du paramètre surveillé.
  • Afin de changer le nom d'une expression surveillée, il est nécessaire de double cliquer avec le bouton gauche de la souris sur son nom, ou de la sélectionner et d'exécuter la commande "Éditer" du menu contextuel ou d'appuyer sur la touche "F2".

Voir la pile et les expressions

Dans la fenêtre de surveillance des expressions, vous pouvez effectuer des calculs mathématiques simples (addition, soustraction, multiplication et division), mais également voir les valeurs de certains éléments d'un tableau. Par exemple, vous pouvez indiquer A[3][4], où A est le nom d'un tableau, 3 et 4 sont les positions dans ses dimensions. Lors de l'ajout d'espions, la liste de ses membres peut être affichée en ajoutant un point à la fin ou en appuyant sur "Ctrl+Espace" :

Insérer des membres d'objet

Voir la Pile des Appels

La partie gauche de l'onglet "Déboguer" de la fenêtre "Boîte à Outils" permet de voir les piles. Les composants suivants y sont affichés :

  • Nom du fichier depuis lequel la fonction est appelée ;
  • Nom de la fonction ;
  • Numéro de la ligne dans le fichier où cette fonction est appelée.

Lorsque le débogage est lancé, seule l'adresse de la fonction appelée où le point d'arrêt a été déclenché, est affichée dans cette fenêtre.

Débogage Pas-à-Pas

Pour déboguer en pas-à-pas avec la visualisation des piles d'appels, il faut utiliser les commande du menu "Déboguer" ou de la barre d'outils "Standard" :

  • Step Into (Entrer) Step Into – avance d'un pas l'exécution du programme, en entrant dans les fonctions appelées. La même action peut être effectuée en appuyant sur la touche "F11".
  • Step Over (Passer) Step Over – avance d'un pas l'exécution du programme, sans entrer dans les fonctions appelées. La même action peut être effectuée en appuyant sur la touche "F10".
  • Step Out (Sortir) Step Out – avance d'un pas l'exécution du programme en remontant d'un niveau, c'est à dire en sortant de la fonction actuelle. La même action peut être effectuée en appuyant sur la touche "Shift+F11".

Pour exécuter les commandes ci-dessus, le débogage en cours doit être stoppé. C'est fait automatiquement lorsque l'exécution du programme atteint un point d'arrêt. Le débogage peut également être suspendu manuellement en appuyant sur "Pause Pause" dans le menu "Déboguer" ou dans la barre d'outils "Standard", ou encore en appuyant sur la touche "Pause".

Lorsqu'une application est au niveau d'un point d'arrêt, l'apparition des évènements continue. Ils sont tous placés dans une queue, et leur traitement par l'Expert Consultant continuera après être sorti de la gestion de l'évènement actuel.

Suspendre, Continuer, Stopper le Débogage

Le débogage d'un programme est automatiquement stoppé (mis en pause) lorsqu'il atteint une ligne contenant un point d'arrêt. Cependant, le débogage peut également être géré manuellement :

  • Pause
    L'exécution du programme pendant le débogage peut être interrompue manuellement en utilisant la commande "Pause Pause" du menu "Déboguer" ou de la barre d'outils "Standard", ou en appuyant sur la touche "Pause". Vous pouvez ensuite déboguer en pas-à-pas.
  • Reprendre
    Afin de continuer à exécuter un programme en mode de débogage après qu'il ait été interrompu automatiquement ou manuellement, exécutez la commande "Reprendre Reprendre" du menu "Déboguer" ou de la barre d'outils "Standard", ou appuyez sur la touche "F5".
  • Stop
    Pour arrêter complètement le débogage, il est nécessaire d'exécuter la commande "Arrêter le Débogage Stop" du menu "Déboguer" ou de la barre d'outils "Standard", ou d'appuyer sur "Shift+F5". Lorsque le programme est stoppé, il est enlevé du graphique spécial auquel il était attaché pour le débogage et le graphique est fermé.

Le débogage est impossible sans les fichiers sources MQ5 et MQH. Il est également recommandé de ne pas distribuer les fichiers EX5 obtenus lors du débogage.