Fehlerhaftes Sprungverhalten im Debugger von build 2280 bei switch

 

Im build 2190 ist alles Ok.

Im build 2280 wird der Code zwar richtig ausgeführt, der debugger springt allerdings die falschen Zeilen an

Wer's nicht glaubt kann's gerne selbst ausprobieren.




int s=2;

void OnTick()
{
   switch(s)   // set breakpoint here
     {
      case  1:
        foo1();
        break;
      case  2:
        foo1();
        break;
      default:
        foo1();
        break; // build 2280 jumps here !!! that's wrong !!!
     }

   foo2();
}

void foo1(void) {Print("Foo 1");};
void foo2(void) {Print("Foo 2");};
 

Die Forums-Software ist ebenfalls Bruch. Wenn man sich nicht ein paar Leerzeilen unter dem einzufügenden Code reserviert, kann man unten nichts mehr dazuschreiben.

 

Das Dokumentieren der Fehler ist mir mittlerweile zu mühsam, es sind zu viele.

Wann wacht Metaquotes endlich auf?

Im visuellen mode des Testers geht es imho nicht nur um Geschwindigkeit, sondern BESONDERS um GENAUIGKEIT und PROMPTE REAKTION.

Im Gegensatz zu build 2190 'verschluckt' build 2280 Trades in der History. Das ist sehr schlecht.

Genauso schlecht ist, daß die Aktualisierung des Bildschirmes nach wie vor zu spät durchgeführt wird. zB bei einem Breakpoint. Nicht einmal Ask- und Bid-Linen werden manchmal dargestellt.

Daß es besser geht, zeigt die Tatasache, daß der Tester korrekt stoppt bei der Betätigung der Leertaste.

Ich habe mir die Mühe gemacht diesen Umstand zu dokumentieren. Wahrscheinlich wieder sinnlos, da nichts geändert werden wird.

Die ersten 3 Screenshots sind von build 2190, die zweiten 3 sind von build 2280.

Build 2190

Hier sind die Positionen vorhanden:





Hier fehlen die Positionen !




Das ist einer der Gründe warum ich meist mit build 2190 arbeite, solange nicht eine ausgereifte Version vorhanden ist.

 

Otto, warum postetst Du dasa im eigenen, neuen Thread und nicht unter der letzten Versionsveröffentlichung: https://www.mql5.com/de/forum/327446

Es ist ganz einfach zu finden!!

Öffne den ganzen Thread Allgemeine Diskussionen und such nach dem Post vom MQ mit: "Die neue MetaTrader 5 Plattform Build nnnn: .."

wobei nnnn die Zahl mit der höchsten (=letzten Versionsnummer ist.

Da gibt es eine gute Chance, dass die Leute sich das anschauen und reagieren!

Die neue MetaTrader 5 Plattform Build 2265: DirectX-Funktionen für 3D-Darstellungen in MQL5 und Symboleinstellungen im Strategietester
Die neue MetaTrader 5 Plattform Build 2265: DirectX-Funktionen für 3D-Darstellungen in MQL5 und Symboleinstellungen im Strategietester
  • 2019.12.06
  • www.mql5.com
Das Update der MetaTrader 5 Plattform wird am Freitag, den 6. Dezember 2019 veröffentlicht...
 
Otto Pauser :

Im build 2190 ist alles Ok.

Im build 2280 wird der Code zwar richtig ausgeführt, der debugger springt allerdings die falschen Zeilen an

Wer's nicht glaubt kann's gerne selbst ausprobieren.

Ich kann dieses Verhalten nicht reproduzieren. Für mich ist alles normal.


 

Bei mir ist auch nichts zu sehen.



Nicht "Otto mag den Debugger nicht"

Der Debugger mag Otto nicht :-)

 
Alain Verleyen:

Ich kann dieses Verhalten nicht reproduzieren. Für mich ist alles normal.

Hallo Alain,

ich habe das als screen capture aufgenommen und hoffe, daß du den Unterschied jetzt erkennst.

Im angehängten Switch.zip sind 2190.mp4 und 2280.mp4.

Bitte ansehen! Danke!

Falls das bei deinem build 2280 nicht auftritt, muss an meiner Installation was nicht stimmen. Aber die kommt ja von Metaquotes durch Autoupdate.

LG Otto

PS: warum kann man keine MP4 als Datei anhängen?

Dateien:
Switch.zip  2707 kb
 
Otto Pauser :

Hallo Alain,

ich habe das als screen capture aufgenommen und hoffe, daß du den Unterschied jetzt erkennst.

Im angehängten Switch.zip sind 2190.mp4 und 2280.mp4.

Bitte ansehen! Danke!

Falls das bei deinem build 2280 nicht auftritt, muss an meiner Installation was nicht stimmen. Aber die kommt ja von Metaquotes durch Autoupdate.

LG Otto

PS: warum kann man keine MP4 als Datei anhängen?

Ok mit deinem Video ist es klarer. Ich habe das gleiche Verhalten, du hast recht.

Ich schlage Ihnen jedoch vor, die letzte nutzlose Unterbrechung zu entfernen:

   switch (s)   // set breakpoint here 
     {
       ...
       default :
        foo1();
 // AV: break is not needed here 
 //        break ;  
     }
 
Otto Pauser :

Das Dokumentieren der Fehler ist mir mittlerweile zu mühsam, es sind zu viele.

Wann wacht Metaquotes endlich auf?

Im visuellen mode des Testers geht es imho nicht nur um Geschwindigkeit, sondern BESONDERS um GENAUIGKEIT und PROMPTE REAKTION.

Im Gegensatz zu build 2190 'verschluckt' build 2280 Trades in der History. Das ist sehr schlecht.

Genauso schlecht ist, daß die Aktualisierung des Bildschirmes nach wie vor zu spät durchgeführt wird. zB bei einem Breakpoint. Nicht einmal Ask- und Bid-Linen werden manchmal dargestellt.

Daß es besser geht, zeigt die Tatasache, daß der Tester korrekt stoppt bei der Betätigung der Leertaste.

Ich habe mir die Mühe gemacht diesen Umstand zu dokumentieren. Wahrscheinlich wieder sinnlos, da nichts geändert werden wird.

Die ersten 3 Screenshots sind von build 2190, die zweiten 3 sind von build 2280.

Build 2190

Hier sind die Positionen vorhanden:





Hier fehlen die Positionen !




Das ist einer der Gründe warum ich meist mit build 2190 arbeite, solange nicht eine ausgereifte Version vorhanden ist.

Dieses Problem ist auch nicht klar, wie te es reproduzieren?
 
Alain Verleyen:

Ok mit deinem Video ist es klarer. Ich habe das gleiche Verhalten, du hast recht.

Ich schlage Ihnen jedoch vor, die letzte nutzlose Unterbrechung zu entfernen:

Das ist nicht nutzlos, das ist ein Beispiel für einen Fehler! Und wieso hast du das nicht sofort bemerkt?

Aber schön, daß du es dir angesehen hast.

Dein Rat ist jedoch genauso nutzlos wie der 'den Tester halt einfach langsam zu drehen', damit die Pfeilchen nicht in's Nirvana gezeichnet werden.

Es geht verdammt viel Zeit drauf die Fehler so zu dokumentieren daß sie verstanden werden. Wer zahlt mir diese Zeit?

Niemand. Also entweder honoriert Metaquotes meine Zeit, oder ich lasse es in Zukunft bleiben Fehler zu dokumentieren.

Der Tester gehört komplett überarbeitet, die Reihenfolge der Abarbeitung der Ereignisse stimmt einfach nicht.

Die visuelle Darstellung ist immer zu spät wenn das Programm an einem Breakpoint anhält!

 
Otto Pauser :

Das ist nicht nutzlos, das ist ein Beispiel für einen Fehler! Und wieso hast du das nicht sofort bemerkt?

Aber schön, daß du es dir angesehen hast.

Dein Rat ist jedoch genauso nutzlos wie der 'den Tester halt einfach langsam zu drehen', damit die Pfeilchen nicht in's Nirvana gezeichnet werden.

Es geht verdammt viel Zeit drauf die Fehler so zu dokumentieren daß sie verstanden werden. Wer zahlt mir diese Zeit?

Niemand. Also entweder honoriert Metaquotes meine Zeit, oder ich lasse es in Zukunft bleiben Fehler zu dokumentieren.

Ich weiß nicht, ob es sich um die Übersetzung handelt, aber ich finde Ihren Kommentar etwas unhöflich. Ich habe nichts mit Metaquotes zu tun und versuche nur zu helfen.

Sie haben einen Fehler gefunden, der jedoch geringfügig ist, und ich habe nur eine Problemumgehung bereitgestellt. Also bitte sei nett und respektvoll.

Ich habe viele Fehler gemeldet, die behoben wurden, aber ich investiere meine Zeit nur, wenn die Chance besteht, nützlich zu sein.

Der Tester gehört komplett überarbeitet, die Reihenfolge der Abarbeitung der Ereignisse stimmt einfach nicht.

Das habe ich nicht bemerkt. Irgendein Testcode?

Die visuelle Darstellung ist immer zu spät wenn das Programm an einem Breakpoint anhält!

Ja, das ist ein altes Problem.