Новая версия платформы MetaTrader 5 build 2755: Улучшения в окне котировок и отладчике - страница 10

 
fxsaber:

b2760. Отладчик показывает разные значения одного и того же.

Предоставьте пожалуйста код для исследования.


Попробуйте воспроизвести данное поведение в новом отладчике

Для включения нового отладчика добавьте параметр

ExperimentalDebugger=1

В раздел [Experts] файла <data>\config\metaeditor.ini

 
Vladimir Karputov:

Это максимально приближенный пример, так как я не мог войти по точке останова сюда:


То есть я на строку ставлю точку останова, чтобы предварительно провести отладку и проверить захожу ли вообще в цикл. 

По моему сильно переоптимизировали оптимизатор - иногда и в более сложные конструкции (где есть некоторые вычисления) не заходит курсор. Причем плавающее. Мучался полдня сегодня.

Используйте функцию DebugBreak()

 
Vladimir Karputov:

Это максимально приближенный пример, так как я не мог войти по точке останова сюда:


То есть я на строку ставлю точку останова, чтобы предварительно провести отладку и проверить захожу ли вообще в цикл. 

По моему сильно переоптимизировали оптимизатор - иногда и в более сложные конструкции (где есть некоторые вычисления) не заходит курсор. Причем плавающее. Мучался полдня сегодня.

Оптимизатор вырезает бесполезные выражения даже в дебаге.

Пока прямого решения нет.


 

@Ilyas Вот ещё одна непонятная ситуация. Пробую объяснить:

На гифке


отладка проводится по F11.

Почему-то указатель строки останавливается на кривой скобке (строка 36) и проскакивает мимо строку 37.

Если пройти весь код пользовательской функции по F11, то после выхода проскакивает мимо строку 26.

А если войдя в пользовательскую функцию нажать Shift+F11 то после выхода из функции строка 26 отрабатывает. Если поменять местами строки 26 и 27, то ничего не меняется. Так-же строка 26 проскакивает мимо.

ps;

Настройки стилизатора


 
Ilyas:

Используйте функцию DebugBreak()

Я давно отказался от 

DebugBreak()

и стал применять

int d=0;


Почему я так делаю: на 'int d=0' ставлю точку отладки и спокойно могу останавливаться на этой строке, чтобы сверить значения условий и переменных.

А если поставить 'DebugBreak()' - то придётся КАЖДЫЙ раз ПЕРЕКОМПИЛИРОВАТЬ - так как условия отладки меняются: представьте я понаставил в одном коде 15  'DebugBreak()'. А теперь мне нужно смотреть только первую останову - а остальные 14 не нужны. Что прикажете делать при отладке? Закомментировать эти ненужные 14 строк? Заново перекомпилировать? А затем мне нужны 2-я, 5-я и 10-я остановка - что снова комментировать и компилировать? 

' DebugBreak()' страшно неудобная для случаев большой отладки, когда отладку провожу в разных частях кода.

Пожалуйста верните возможность остановки на строках вида  'int d=0' 

 
Ilyas:

Предоставьте пожалуйста код для исследования.

Очень хотел предоставить воспроизводящий код. Но заметил проблему при дебаге большого проекта и лаконичный код создать не смог. А в большом - не нарвался (заметил) больше.

Попробуйте воспроизвести данное поведение в новом отладчике

Для включения нового отладчика добавьте параметр

В раздел [Experts] файла <data>\config\metaeditor.ini

Спасибо, буду пробовать.

 

Попробую объяснить проблему:

Если, в процессе работы тестера стратегий в режиме оптимизатора переключить вкладку графического отображения результатов с текущей на другую, например на предыдущие результаты, то (результаты тестирования начинают выводиться на неё - предыдущий билд так делал, на текущем пока не замечено, но!), после этого эту "предыдущую" закрыть по средней кнопке мыши или контекстное меню не получается и закрыть её получается, только перезапуском программы.

По программистки - явно теряется контекст вывода результатов или меняется на активный, хотя должен использоваться тот, который был открыт при начале тестирования, если, конечно, не было задумано, так чтобы можно было результаты разных тестов наносить на одно графическое отображение (идея интересная, имхо, но вряд ли так и было задумано).

 
Заметил, что при запущенном MT5 комп стал подвисать. Связано ли это с обновлением?
 
Ivan Titov:
Заметил, что при запущенном MT5 комп стал подвисать. Связано ли это с обновлением?

Запустите Диспетчер Задача Windows, отсортируйте по колонке "ЦП" (Центральный процессор), затем по колонке "Диск". 

Приложите скриншоты.
 

Вот кстати, было бы здорово увидеть какой-то монитор процессов внутри самого MT5.

Когда запущено несколько десятков экспертов, хотелось бы видеть, кто из них как потребляет процессорное время, память, дисковые операции.

Причина обращения: