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

 
fxsaber:

Подскажите, как найти место в исходнике, откуда делался соответствующий include?

По-видимому пока только сторонними или самодельными средствами. Например, взять мой програм-паркер или статью по анализу MQL. Там данные собираются, нужно их только вывести в лог или еще куда. Но define-ы там не обрабатываются.

Другие анализаторы навскидку - lint, doxygen.

MQL5 Program Packer
MQL5 Program Packer
  • www.mql5.com
This script allows you to assemble a zip-file of your MQL5-program with all dependencies automatically. The dependencies are: included source files via #include directive (both modes of absolute () and relative ("") references are supported); icons linked by #property icon directive; resources (images, sounds, and other types) embedded by...
 
Предложение разработчикам.
Добавить в ME поиск/замену по текущему Project, а то при рефакторинге ходить по каждому из файлов и искать вхождение как-то не очень.
 
Sergey Dzyublik:

Только вручную.
Можете сделать предложение разработчикам - заполнять пустые колонки File, Line, Column соответствующей информацией о файле источнике, из которого делался include.

Через ПКМ-меню хотелось бы.


Stanislav Korotky:

По-видимому пока только сторонними или самодельными средствами. Например, взять мой програм-паркер или статью по анализу MQL. Там данные собираются, нужно их только вывести в лог или еще куда. Но define-ы там не обрабатываются.

Другие анализаторы навскидку - lint, doxygen.

В курсе такой возможности через Ваш замечательный инструмент. К сожалению, не всегда получается найти нужную include-строку, т.к. один и тот же mqh может присутствовать несколько раз. А нужно его первое включение при сборке.

 

Баг МЕ(build 2380) не работает функциональность Replace (Сtrl + H) для включенного "Selected text only" вместе с "Search up", когда выделен необходимый участок применения, а не весь код.
Последовательность действий для воспроизведения:

void Increment(int &n){
   ++n;
};

void test(){
   int n = 0;
   for(int i = 0; i < 100; ++i){
      DebugBreak();
      Increment(n);
   }  
}

void OnStart(){
   test();
}


1. Вставить код, выделить приведенный участок с помощью мышки, открыть Replace (Сtrl + H)
2. Активировать "Selected text only"  и "Search up".
3. В искомую строку ввести "test", заменить на "best", применить "Replace All".
Результат: ни чего не найдено.
Ожидаемый результат: замена "test" на "best".


Файлы:
 
Уже второй раз встречаюсь с проблемой в ME - один с потоков грузит процессор на 100%. 
При этом в МЕ все работает как надо.
Если МЕ закрыть, процесс продолжает висеть и грузить процессор, приходится убивать руками.
Возможно возникает какой-то race condition между фоновой и ручной компиляцией для проекта среднего размера (3 сек на Intel 7700-HQ)...
 
fxsaber:

В курсе такой возможности через Ваш замечательный инструмент. К сожалению, не всегда получается найти нужную include-строку, т.к. один и тот же mqh может присутствовать несколько раз. А нужно его первое включение при сборке.

Именно первое включение и засекается. Порядок обхода файлов будет такой же как при сборке, если не вмешается условная компиляция - для макросов нужно допиливать.

Я обычно делаю просто - переименовываю нужный mqh-файл и при попытке компиляции будет указано, где затык.

 
Stanislav Korotky:

Я обычно делаю просто - переименовываю нужный mqh-файл и при попытке компиляции будет указано, где затык.

Спасибо за способ! Тогда алгоритм такой: перехожу через ENTER на исходник mqh, жму ALT+N, переименовываю, жму F7.

 
Баг МЕ (build 2380) описание ошибки компиляции не влазит в лимит 256 символов и обрезается, в результате невозможно понять для какого типа данных возникает ошибка, так как необходимая часть была обрезана.


Предложение разработчикам - засмотреться возможность увеличения лимита хотя бы до 512 символов, или логирование в файл, или предоставление детализации в отдельном окне.
 
Sergey Dzyublik:
Баг МЕ (build 2380) описание ошибки компиляции не влазит в лимит 256 символов и обрезается, в результате невозможно понять для какого типа данных возникает ошибка, так как необходимая часть была обрезана.


Предложение разработчикам - засмотреться возможность увеличения лимита хотя бы до 512 символов, или логирование в файл, или предоставление детализации в отдельном окне.
Если журнал смотреть по ПКМ --> Просмотр, то там тоже обрезано?
 
Artyom Trishkin:
Если журнал смотреть по ПКМ --> Просмотр, то там тоже обрезано?

В том то и проблема, что для вкладки Errors в ME журнала нет.