Ошибки, баги, вопросы - страница 2462

 
Aleksey Sergan:

при выполнении скрипта 

ошибка

в чем может быть причина?

если изменить имя файла 

ошибки нет

В имени файла проблема.
Запрещена работа с "выполняемыми" файлами (exe, msi, bat, ...).

 
Sergey Dzyublik:

В имени файла проблема.
Запрещено создание "выполняемых" файлов (exe, msi, bat, ...).

Да, действительно так. В справке не нашел об этом ничего.

 

Может быть это несущественно, но строго говоря в сообщении об ошибках при компиляции

void A::operator=(const A&) тут (где стрелка) лишний (тем более, что он и по умолчанию генерируется то же)

 
Уже 4-й раз за день встречаю проблему с 100% CPU зависанием ME (build 2037).

Вначале появляется 100% нагрузка на ядро, но ME работает нормально - можно даже запускать отладку кода в МТ.
Однако, если попробовать перейти на другую вкладку с исходным кодом - ME полностью зависнет (нужно убивать процес), а окно новой вкладки так и не откроется (висит в полураскрытом состоянии).
Если же не переходить в новую вкладку, а просто закрыть МЕ, то процесс не закроется, а станет дочерним процессом МТ и будет дальше 100% нагружать ядро.

Проблема возникает на ровном месте, просто при разработке кода (небольшой проект, 8 файлов <3K строк сумарно) , предположительно "крашится" ME code intellisense.
 
Ура, удалось отловить код, который "крашит" анализатор ME.
МЕ падает при запуске. Без предварительной правки кода в другом редакторе МЕ не запустить.

При необходимости исходник будет предоставлен разработчикам через дней 5-7.
Проблема возникла со строкой:
if(
видимо что-то не так с подсчетом незакрытых скобок.
 
Опять час поиска ошибок в коде проекта привел к "специфике" работы MT5 (build 2049).

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

#define PRINT(x) Print(#x, ":", string(x))

void OnStart(){  
   string test_name;
   string test_result;  
   
   test_name = "394_TEST_____";
   for(int i = 0; i < 394; i++){
      PRINT(test_name + string(i+1));
   } 
   test_result = "RESULT_SUCCESS";
   PRINT(test_result);
   Sleep(5000);
   
   
   test_name = "395_TEST_____";
   for(int i = 0; i < 395; i++){
      PRINT(test_name + string(i+1));
   } 
   test_result = "RESULT_SUCCESS";
   PRINT(test_result);
   Sleep(5000);

   
   test_name = "396_TEST_____";
   for(int i = 0; i < 396; i++){
      PRINT(test_name + string(i+1));
   } 
   test_result = "RESULT_SUCCESS";
   PRINT(test_result);
   Sleep(5000);
}

Каким-то чудом очередь логов выбрасывает запись с номером 395, при этом все записи до и после этого номера выводятся в лог МТ.
Таким образом тест №395 всегда провальный.
 
Sergey Dzyublik:

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

МТ4 чаще пользуюсь чем МТ5, там всегда была такая же проблема - в логе часть принтов терминал может проглотить, но в файле все будет записано, я обычно при отладке если принты пишу, то добавляю паузу чуть больше 100 мс, т.е.

 for(int i = 0; i < 395; i++){
        PRINT(test_name + string(i+1));
        Sleep(123);   
}

в МТ4 это всегда корректно работает

 
Igor Makanu:

МТ4 чаще пользуюсь чем МТ5, там всегда была такая же проблема - в логе часть принтов терминал может проглотить, но в файле все будет записано, я обычно при отладке если принты пишу, то добавляю паузу чуть больше 100 мс, т.е.

в МТ4 это всегда корректно работает

Проблема не в проглатывании нескольких строк, проблема в проглатывании конкретно одной строки, номер 395.
Строки до и после есть...

Скорее всего что-то не так с объектом отвечающем за очередь логов в МТ терминале.
Возможно, когда количество сообщений в очереди достигает лимита, например 395 шт, происходит перевыделение памяти с подальшим копированием, однако одно сообщение теряется.

За идею с добавлением Sleep спасибо,
однако Sleep не дает гарантий, что теперь будет пропадать не 395-я запись с логов, а какая-то случайная запись, например 964-я или 845-я.

 
Sergey Dzyublik:

однако Sleep не дает гарантий, что теперь будет пропадать не 395-я запись с логов, а какая-то случайная запись, например 964-я или 845-я.

на МТ4 гарантированно работает, причем Sleep() должен быть больше 100мс - подозреваю, что этого достаточно чтобы терминал успел обработать очередь сообщений

 

Всем здравствуйте. После очередного прогона совы в тестере МТ5 получил вот такой вот график.

При этом раньше этого естественно не было. Глянул в лог а там вот это:

По непонятным мне причинам тест останавливается под конец 2011 года, а затем инициализируется снова и продолжается. При этом если включена визуализация, она прерывается. Если я начинаю тест к примеру с 2009 года, этого не происходит. Терминал перезагружал, логи и историю чистил. С таким сталкиваюсь в первые.