К сожалению, нет. Но можно визуально отлаживать экспертов, запуская
тестер в визуальном режиме.
EX4 файлы являются скомпилированным и оптимизированным p-кодом(ассемблерным кодом) для виртуальной машины MQL4 и не содержат никаких упоминаний об переменных или именах функций. Поэтому уже ничего нельзя узнать состояние переменных.
К сожалению, добавить отладочную информацию в EX4 код не сможем, так как это повлечет изменение формата - чего мы допустить не можем.
К сожалению, добавить отладочную информацию в EX4 код не сможем, так как это повлечет изменение формата - чего мы допустить не можем.
При желании добавить отладочнуй информацию, ее можно записать
в отдельный файл, который будет использоваться отладчиком.
EX4 файл может остаться без изменений.
Mak писал (а):
При желании добавить отладочнуй информацию, ее можно записать в отдельный файл, который будет использоваться отладчиком. EX4 файл может остаться без изменений.
При желании добавить отладочнуй информацию, ее можно записать в отдельный файл, который будет использоваться отладчиком. EX4 файл может остаться без изменений.
Или ввести два режима компиляции: Debug и Release. Пора, наверное, познакомить MQL4 разработчиков с возможностями остальных современных сред разработки. Понимаю, платформа новая, но вывод данных через Print() в журнал сродни отладке выводом через echo"" тестовых данных в веб страницы на PHP. Это далеко от возможности поставить точки останова и увидеть в плавающем окне-панели или всплывающей подсказке наведением мышью значения переменных.
Для примера укажем на Microsoft Visual Studio 6.0, .NET 2002/2003/2005.
Опять же, понимаю, что MQL платформа ещё сравнительно новая.
chv:
Или ввести два режима компиляции: Debug и Release. Пора, наверное, познакомить MQL4 разработчиков с возможностями остальных современных сред разработки. Понимаю, платформа новая, но вывод данных через Print() в журнал сродни отладке выводом через echo"" тестовых данных в веб страницы на PHP. Это далеко от возможности поставить точки останова и увидеть в плавающем окне-панели или всплывающей подсказке наведением мышью значения переменных.
Для примера укажем на Microsoft Visual Studio 6.0, .NET 2002/2003/2005.
Опять же, понимаю, что MQL платформа ещё сравнительно новая.
Я даже и не могу представить реакции разработчиков - они наверно
со смеху валялись :)
Mak:
При желании добавить отладочнуй информацию, ее можно записать в отдельный файл, который будет использоваться отладчиком. EX4 файл может остаться без изменений.
При желании добавить отладочнуй информацию, ее можно записать в отдельный файл, который будет использоваться отладчиком. EX4 файл может остаться без изменений.
Или ввести два режима компиляции: Debug и Release. Пора, наверное, познакомить MQL4 разработчиков с возможностями остальных современных сред разработки. Понимаю, платформа новая, но вывод данных через Print() в журнал сродни отладке выводом через echo"" тестовых данных в веб страницы на PHP. Это далеко от возможности поставить точки останова и увидеть в плавающем окне-панели или всплывающей подсказке наведением мышью значения переменных.
Для примера укажем на Microsoft Visual Studio 6.0, .NET 2002/2003/2005.
Опять же, понимаю, что MQL платформа ещё сравнительно новая.
Я все-таки нашел возможность ставить брекпоинты. Делаю это так:
1) Пишу dll, с отладочными функциями, главное назначение которых - принять аргументы из mql4.
2) В местах кода, где нужно поставить брекпоинт, пишу вызов одной из отладочных функций.
3) Запускаю отладку dll в Visual Studio, выбирая в качестве запускающего процесса terminal.exe. Бряки ставлю в Visual Studio на отладочные функции. Интересующие меня значения переменных передаю в VS как аргументы отладочных функций.
Понимаю конечно что через задницу, но ЭТО РАБОТАЕТ. А вообще-то думаю расставаться с mql4. До уровня нормального С он очень здорово не дотягивает. Например отсутствие структур дико неудобно. Кроме того нет никакой гарантии, что mql5 тоже будет С-подобным языком. А потому идеальным мне кажется код, написанный на С/С++, с тоненькой прослойкой mql4, для связи с терминалом.
Ренат, отладочную информацию в ex4 вводить совсем необязательно. Можно просто формировать её в отдельном файле. Это тем более легко, если ex4 представляет собой код для виртуальной машины. Я сам уже применял такой подход для отладки на языке Forth. Там тоже простая виртуальная машина и компилятор для неё. Немного меняется только сам код виртуальной машины. А формат исполняемых файлов не меняется. Может и вам пойти по такому пути ?
1) Пишу dll, с отладочными функциями, главное назначение которых - принять аргументы из mql4.
2) В местах кода, где нужно поставить брекпоинт, пишу вызов одной из отладочных функций.
3) Запускаю отладку dll в Visual Studio, выбирая в качестве запускающего процесса terminal.exe. Бряки ставлю в Visual Studio на отладочные функции. Интересующие меня значения переменных передаю в VS как аргументы отладочных функций.
Понимаю конечно что через задницу, но ЭТО РАБОТАЕТ. А вообще-то думаю расставаться с mql4. До уровня нормального С он очень здорово не дотягивает. Например отсутствие структур дико неудобно. Кроме того нет никакой гарантии, что mql5 тоже будет С-подобным языком. А потому идеальным мне кажется код, написанный на С/С++, с тоненькой прослойкой mql4, для связи с терминалом.
Ренат, отладочную информацию в ex4 вводить совсем необязательно. Можно просто формировать её в отдельном файле. Это тем более легко, если ex4 представляет собой код для виртуальной машины. Я сам уже применял такой подход для отладки на языке Forth. Там тоже простая виртуальная машина и компилятор для неё. Немного меняется только сам код виртуальной машины. А формат исполняемых файлов не меняется. Может и вам пойти по такому пути ?
Rosh:
chv писал (а):
Или ввести два режима компиляции: Debug и Release. Пора, наверное, познакомить MQL4 разработчиков с возможностями остальных современных сред разработки. Понимаю, платформа новая, но вывод данных через Print() в журнал сродни отладке выводом через echo"" тестовых данных в веб страницы на PHP. Это далеко от возможности поставить точки останова и увидеть в плавающем окне-панели или всплывающей подсказке наведением мышью значения переменных.
Для примера укажем на Microsoft Visual Studio 6.0, .NET 2002/2003/2005.
Опять же, понимаю, что MQL платформа ещё сравнительно новая.
Я даже и не могу представить реакции разработчиков - они наверно
со смеху валялись :) Mak писал (а):
При желании добавить отладочнуй информацию, ее можно записать в отдельный файл, который будет использоваться отладчиком. EX4 файл может остаться без изменений.
При желании добавить отладочнуй информацию, ее можно записать в отдельный файл, который будет использоваться отладчиком. EX4 файл может остаться без изменений.
Или ввести два режима компиляции: Debug и Release. Пора, наверное, познакомить MQL4 разработчиков с возможностями остальных современных сред разработки. Понимаю, платформа новая, но вывод данных через Print() в журнал сродни отладке выводом через echo"" тестовых данных в веб страницы на PHP. Это далеко от возможности поставить точки останова и увидеть в плавающем окне-панели или всплывающей подсказке наведением мышью значения переменных.
Для примера укажем на Microsoft Visual Studio 6.0, .NET 2002/2003/2005.
Опять же, понимаю, что MQL платформа ещё сравнительно новая.
Отчего же валялись? Могу поспорить на $1, что они видят VC++ и debugger каждый день. Или они тоже пишут саму среду MT4 принтовкой переменных?
Я так и не понял - "они видят VC++ и debugger каждый день" или необходимо
"познакомить MQL4 разработчиков с возможностями остальных
современных сред разработки."?
Или я не правильно понял фразу?
Или я не правильно понял фразу?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
скажите есть ли возможность проходить программу в MQL4 по шагам что бы отладить. и контролировать в процессе значение переменных ? так же как это в VBA возможно ?