Non è male, di per sé. Ma.
1. Non una parola sulleasserzioni (assertions), che sono di enorme aiuto durante il debug.
2. il tracciatore è a dir poco controverso.
3. Si dovrebbe dire che a causa dell'ottimizzazione (del compilatore) il debugging diventa molto difficile per le funzioni semplici a causa dell'inlining e suggerire modi per aggirare questo inconveniente.
Non è male, di per sé. Ma.
1. Non una parola sulle asserzioni (assertions), che sono di enorme aiuto durante il debug.
2. il tracciatore è a dir poco controverso.
3. Si dovrebbe menzionare che a causa dell'ottimizzazione (compilatore) il debugging è molto difficile per le funzioni semplici a causa dell'inlining e suggerire modi per aggirare questo inconveniente.
3. è necessario menzionare che a causa dell'ottimizzazione (compilatore) il debug è molto difficile per le funzioni semplici a causa dell'inlining e suggerire modi per aggirare questo svantaggio.
Nel debugger, l'inlining è completamente disabilitato e il walkthrough è completamente da codice sorgente così com'è.
Nel profiler delle ultime build c'era un problema con il checkpoint, che riduceva la qualità dei rapporti, ma è stato risolto e nella prossima build della settimana prossima sarà disponibile una nuova versione con rapporti più dettagliati.
Ma ciò che è scritto qui è fondamentalmente sbagliato:
Хочу отдельно отметить, что компилятор MetaEditor транслирует программы в байт-код, а не нативный код (подробнее читаем по ссылке). Это дает возможность создавать защищенные шифрованием программы, не боясь взлома. Также преимуществом такой трансляции является то, что байт-код может быть запущен как в 32-х битной версии операционной системы, так и в 64-х битной.
Nella prima fase di compilazione, viene memorizzato un bytecode universale, ma quando viene eseguito nel terminale, questo bytecode viene tradotto al 100% in codice nativo a 32 o 64 bit con un'ulteriore ottimizzazione. È grazie alla traduzione in codice nativo che abbiamo moltiplicato la velocità di esecuzione dei programmi MQL5 rispetto a MQL4.
Il puro bytecode senza traduzione in codice nativo era presente in MQL4.
Nel debugger, l'inlining è completamente disabilitato e la guida è completamente sul codice sorgente.
Da quanto tempo è così? Una volta era un grosso problema. È solo che è passato un po' di tempo da quando ho lavorato in 5k.
Fin dall'inizio.
L'inlining si mangia la maggior parte delle funzioni e sarebbe impossibile fare il debug con esso, anche solo in teoria. Forse avete lavorato solo con le prime versioni del debugger, dove c'erano diversi problemi.
E per il debug durante il weed end o senza connessione con il mercato? Avete una soluzione? Perché c'è un problema dopo il "OnTick" con il debugger, su MT4 c'è un"Tick generator", qualcosa di simile su mt5?
Grazie in anticipo,
E per il debug durante il weed end o senza connessione con il mercato? Avete una soluzione? Perché c'è un problema dopo il "OnTick" con il debugger, su MT4 c'è un "Tick generator", qualcosa di simile su mt5?
Grazie in anticipo,
Praticamente non uso l'otaldka in tempo reale a causa del lungo processo di arrivo delle quotazioni e della sezione grafica richiesta.
Devo usare la stampa alla vecchia maniera e monitorarla nel tester.
Inoltre, il debugger locale non decolla affatto prima di Visual Studio. Puntate a una variabile e vi darà un valore, puntate a un'espressione come a+b /s e il risultato apparirà. In ME è più facile usare Print.
Miglioreremo sicuramente il debugger non appena avremo terminato l'aggiornamento della MT4.
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Il nuovo articolo Debug dei programmi MQL5 è stato pubblicato:
Questo articolo è destinato principalmente ai programmatori che hanno già imparato il linguaggio ma non padroneggiano completamente lo sviluppo del programma. Rivela alcune tecniche di debug e presenta un'esperienza combinata dell'autore e di molti altri programmatori.
La seconda fase di debug utilizza Debugger (tasto rapido F5). Il debugger avvia il programma in modalità emulazione eseguendolo passo passo. Debugger è una nuova funzionalità di MetaEditor 5, poiché è assente in MetaEditor 4. Ecco perché non c'è esperienza di utilizzo da parte dei programmatori che passano da MQL4 a MQL5.
L'interfaccia del debugger ha tre pulsanti principali e tre ausiliari:
Questa è l'interfaccia del debugger. Ma come dovremmo usarlo? Il debug del programma può iniziare dalla riga, in cui un programmatore ha impostato una funzione di debug DebugBreak() speciale, o da un punto di interruzione che può essere impostato premendo il pulsante F9 o facendo clic su un pulsante speciale sulla barra degli strumenti:
Fig. 2. Impostazione dei punti di interruzione.
Autore: Nikolay Demko