Ошибки, баги, вопросы - страница 2747
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день! В журнале МТ5 выскакивает вот такое сообщение: 2020.05.21 05:49:44.364 Virtual Hosting failed to get list of virtual hosts (www.mql5.com:443 send request failed [12002])
Подскажите, люди добрые, что бы это значило, и что с этим делать?
Спасибо!
У меня отказывается работать отладчик в одном моём проекте. При чем, его поведение сложно предсказать. Иногда он просто отказывается заходить на точки останова. В некоторые функции также заходить отказывается напрочь. Сначала я думал, причина в обновлениях (вдруг с отладкой что-то пошло не так). Но в других более простых программах всё вроде работает. Хотя я особо подробно не проверял, так как работаю над своим основным проектом. Он получился довольно сложным и включает в себя 15 модулей только моей разработки (количество стандартных модулей я не считал). Основной модуль содержит до 2000 строк. Я подумал, может быть всё дело в сложности проекта... К тому же, в некоторых местах я испольную макросы для повторяющихся фрагментов кода. Еще я использую стандартные элементы UI, такие как CAppDialog, CCheckGroup, CComboBox, CButton и т.п, которые я переписал под функционал моей программы. Возможно отладка не работает из-за них... Например, в метод CCheckGroup::itemCheckState(const string item), специально написанный мною, отладка не заходит. Метод находит элемент чек бокса и проверяет выбран ли он (его State):
Вот какой UI получился у меня в итоге:
Часть элементов UI временно засекречена. А вот ветка, где я рассказываю о том как я переопределил методы Show() и Hide() элемента CAppDialog: https://www.mql5.com/ru/forum/338301. Тогда компилятор ругался, возникла критическая ошибка.
В итоге получается, что проект нормально компилируется, компилятор не выдает никаких ошибок. Но отладка работает со сбоями и просто не показывает выполнение некоторых фрагментов кода, функций, методов и т.п.
На сколько я понимаю, причин может быть несколько.
Информация о билде и системе:
https://www.mql5.com/ru/forum/1111/page2746#comment_16481481
В методе CCheckGroup::itemCheckState (в который отладчик добраться не может) прописал примерно следующее:
И получил следующее сообщение:
2020.05.21 13:20:44.229 CCheckGroup::itemCheckState item: 39 state: 32
https://www.mql5.com/ru/forum/1111/page2746#comment_16481481
Без нормальной работы отладчика работа над проектом может на долго затянуться. Хотелось бы, чтобы Разработчики обратили внимание на данный баг связанный скорее всего с отладчиком.
Очень много текста, все не читал.
Но если у вас что-то работает в дебаг версии и при этом не работает в релиз, или наоборот, то проверьте все ли переменные и поля, особенно в классе/структуре, были инициализированы.
#define GETCURRENTTICK GetCurrentTick1(Tick)
#define GETCURRENTTICK GetCurrentTick2(Tick, !i)
#define GETCURRENTTICK GetCurrentTick3(Tick)
На тему бесплатности SymbolInfo-функций.
возможно метод инлайнится, тогда это проблема не отладчика, а компилятора для дебаг-режима
Вот-вот, проект получился переполненным макросами вдоль и поперек, как моими, так и из стандартных модулей. Возможно, поэтому, у отладчика не всегда получается сопоставить команды в дебаг файле *.ex5 со строками в исходном файле *.mq5 и остальных модулях...
На тему бесплатности SymbolInfo-функций.
так это стоимость самой функции а не передачи строки по значению а не по ссылке!
тем более ваш вариант с кэшем вполне себе решение, если выполнение этой функции занимает значимый процент времени от времени выполнения советника (во что я слабо верю)
Вот-вот, проект получился переполненным макросами вдоль и поперек, как моими, так и из стандартных модулей. Возможно, поэтому, у отладчика не всегда получается сопоставить команды в дебаг файле *.ex5 со строками в исходном файле *.mq5 и остальных модулях...
так это стоимость самой функции а не передачи строки по значению а не по ссылке!
Изначально к этому подводил.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
fxsaber, 2020.05.20 13:24
А лучше, конечно, иметь
В Оптимизаторе эти функции вызываются десятки миллиардов раз.
тем более ваш вариант с кэшем вполне себе решение, если выполнение этой функции занимает значимый процент времени от времени выполнения советника (во что я слабо верю)
На определенном этапе становится важным не только относительное часть занимаемого времени, но и абсолютная.