По сути неплохо. Но.
1. Ни слова про утверждения (assertions) которые являются просто громадной помощью при отладке.
2. Трассировщик спорен, мягко говоря.
3. Необходимо упомянуть, что из-за оптимизации (компилятора) отладка сильно осложняется для простых функций из-за инлайнинга и предложить способы обхода этого недостатка.
По сути неплохо. Но.
1. Ни слова про утверждения (assertions) которые являются просто громадной помощью при отладке.
2. Трассировщик спорен, мягко говоря.
3. Необходимо упомянуть, что из-за оптимизации (компилятора) отладка сильно осложняется для простых функций из-за инлайнинга и предложить способы обхода этого недостатка.
3. Необходимо упомянуть, что из-за оптимизации (компилятора) отладка сильно осложняется для простых функций из-за инлайнинга и предложить способы обхода этого недостатка.
В отладчике инлайнинг полностью отключается и проходка полностью по исходному коду как есть.
В профайлере последних билдов была проблема с проставлением контрольных точек, что снижало качество отчетов, но уже исправили и в следующем билде на следующей неделе уже будет доступна новая версия с более детализированными отчетами.
Но вот то, что написано тут, в корне неверно:
Хочу отдельно отметить, что компилятор MetaEditor транслирует программы в байт-код, а не нативный код (подробнее читаем по ссылке). Это дает возможность создавать защищенные шифрованием программы, не боясь взлома. Также преимуществом такой трансляции является то, что байт-код может быть запущен как в 32-х битной версии операционной системы, так и в 64-х битной.
На первом этапе компиляции хранится универсальный байткод, но при исполнении в терминале этот байт код полностью на 100% переводится в нативный 32 или 64 битный код с дополнительной оптимизацией. Именно за счет перевода в нативный код мы кратно подняли скорость исполнения MQL5 программ по сравнению с MQL4.
Чистый байткод без трансляции в натив был в MQL4.
В отладчике инлайнинг полностью отключается и проходка полностью по исходному коду как есть.
А давно так? Раньше это была большая проблема. Просто довольно давно не работал в 5ке.
С самого начала.
Инлайнинг съедает большую часть функций и с ним вообще невозможно было бы отлаживаться даже теоретически. Может Вы просто с первыми версиями отладчика работали, где был ряд проблем.
Оталдкой на реалтайме практически не пользуюсь ввиду долгого процесса прихода котировок и нужного участка графика.
Приходится по старинке Print пихать и отслеживать в тестере.
Все таки до Visual Studio местный отладчик вообще не взлетает. Навел на переменную - она тебе значение, навел на выражение типа а+б /с - всплывает результат. В ME проще Print использвать .
Отладчик обязательно улучшим, как только закончим апгрейд МТ4.
Отладчик обязательно улучшим, как только закончим апгрейд МТ4.
Ренат, действительно как-то не продуманна система отладки. Отладка в режиме реального времени это аморально :) Отладка экспертов должна производиться в режиме тестирования стратегий. Иначе брейк поинты можно в помойку кинуть, и отлаживать "на коленках" через текстовые файлы и логи. Думаю, непопулярность MT5 именно в этом заключается, потому как функционал добавили, а его применимости нет, т.е. MT5 хоть и имеет отладку, классы и прочие пряники, но воспользоваться ими не возможно. Пока не будет нормального дебагера, все потуги будут тщетны.
С уважением, Александр.
Ренат, действительно как-то не продуманна система отладки. Отладка в режиме реального времени это аморально :) Отладка экспертов должна производиться в режиме тестирования стратегий. Иначе брейк поинты можно в помойку кинуть, и отлаживать "на коленках" через текстовые файлы и логи. Думаю, непопулярность MT5 именно в этом заключается, потому как функционал добавили, а его применимости нет, т.е. MT5 хоть и имеет отладку, классы и прочие пряники, но воспользоваться ими не возможно. Пока не будет нормального дебагера, все потуги будут тщетны.
С уважением, Александр.
Помнится, на 4-ке когда ни отладчика, ни структур еще не было приходилось отлаживать и MQL и DLL в паре.
Поэтому утверждать что "пользоваться невозможно" тем, что есть сейчас, по крайней мере нелепо.
Кто хочет - ищет возможность. Сделали брейки, дебаг и на том спасибо, в модульной отладке помогает 100%. А глобально - можно и Print поставить по старинке.
А чтобы сделать MT5 популярным, необходимо уйти от MT4, остановить саппорт, обязать брокеров к переходу. Как произошло с MT4 билдами < 600. Это не от разработчиков зависит, тем более MQL-разработчиков.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Отладка программ на MQL5:
Эта статья ориентирована в первую очередь на программистов, которые уже изучили язык, но ещё недостаточно освоились в разработке программ. Статья раскрывает практические приёмы отладки программ и является объединенным опытом, не только моим, но и многих программистов, на опыте которых я учился.
Отладка программы - это стадия разработки, в которой обнаруживают и устраняют ошибки исполнения программы. В процессе отладки разработчик мысленно анализирует программу, и выясняет что с ней не так. Данные для анализа получают, наблюдая за состоянием переменных и процессом прохождения программы (какие функции когда вызываются).
Существуют две дополняющие друг друга технологии отладки:
Процесс отладки. Наблюдение за значениями переменных.
Автор: Nikolay Demko