Erreurs, bugs, questions - page 2611

 
 

J'exécute l'EA en mode débogage. J'ai besoin de créer un point d'arrêt au moment exact où je déchiffre manuellement l'EA. Comment je fais ça ?


Le problème est que le terminal se bloque en permanence lorsque je supprime l'EA. J'ai besoin de comprendre où ça se passe.

 
fxsaber:

J'exécute l'EA en mode débogage. J'ai besoin de créer un point d'arrêt au moment exact où je déchiffre manuellement l'EA. Comment je fais ça ?

J'ai écrit le code suivant :

int OnInit()
  {
     if(IsStopped()) DeInitEA(1);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   if(IsStopped()) DeInitEA(2);

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(IsStopped()) DeInitEA(3);
  }
//+------------------------------------------------------------------+

void DeInitEA(const int callfunc)
{
   string s = "";
   switch (callfunc)
   {
      case 1: s = "OnInit"; break;
      case 2: s = "OnDeinit"; break;
      case 3: s = "OnTick"; break;
   }
   Print(s + " , остановка работы советника");
   
}

mettre un point d'arrêt sur la chaîne s = "" ; - retour à ME sans problèmes, les fenêtres de débogage sont apparues, enfin, tout est comme d'habitude

 

D'abord, ils ont réduit les statistiques et maintenant ils les ont complètement tuées ?


 
Igor Makanu:

a écrit le code suivant :

mettre un point d'arrêt sur la chaîne s = "" ; - retour à ME sans problèmes, les fenêtres de débogage sont apparues, enfin, tout comme d'habitude

Avec cette approche, nous devons vérifier la présence d'un point d'arrêt après chaque opérateur. Ça ne va pas.

 
TheXpert:

D'abord, ils ont réduit les statistiques et maintenant ils les ont complètement tuées ?

ça marche

 
fxsaber:

Avec cette approche, vous devez mettre un contrôle d'arrêt après chaque opérateur. Ne convient pas.

Vous n'avez pas besoin de le faire après chaque déclaration, utilisez la vérification par demi-division - au début, à la fin et au milieu du code, puis lorsque vous trouvez la bonne moitié, répétez-le à nouveau et divisez le code en deux parties, je pense que c'est rapide.

 
Igor Makanu:

après chaque déclaration n'est pas nécessaire, mettre un contrôle de la moitié de la division - au début, à la fin et au milieu du code, puis trouver la bonne moitié du code répéter la division du code en deux parties, à mon avis il est rapide

C'est un gros programme. Il faut environ 30 secondes à chaque fois pour reproduire le raccrochage.

 
fxsaber:

J'exécute l'EA en mode débogage. J'ai besoin de créer un point d'arrêt au moment exact où je déchiffre manuellement l'EA. Comment je fais ça ?


Le problème est que le terminal se bloque en permanence lorsque je supprime l'EA. J'ai besoin de comprendre où ça se passe.

Est-ce que c'est complètement réparé ou est-ce que cela prend un certain temps pour que l'EA soit déchargé ? Dans ce dernier cas, cherchez une boucle.
 
Vladimir Simakov:
Est-il complètement gelé, ou l'EA se décharge-t-il après un certain temps ? Si c'est le dernier, vous cherchez une boucle.

Plus intéressant. Il ne se bloque pas en mode débogage. Mais en mode complet, ça colle.