Мои попытки предложить инструменты для отладки макросов оказались в курилке, вряд ли Вы туда заглядываете https://owen.ru/forum/showthread.php...l=1#post251022
Я предложил функцию для вывода диагностической информации из выполняемого макроса на спец.окно.
Есть возможность приостановить выполнение макроса в заданных точках останова на заданное время или до нажатия на экран
В этот момент в окно выводится диагностическая информация - любая, например, заданный текст, значения тех или иных переменных.
В нужном месте любого своего макроса помещаете вызов "функции"
DEBUG(int delay, const char *format, ... ), где
- delay - время "показа" окна отладки в сек
- format - строка формата аналогичная функции fprint, в строке формата можно использовать \n - переход на новую строку, \t - табуляция, \a - короткий бип
- ... собственно сами переменные, которые нужно вывести на экран.
Например,
int a, b, c;
a= 2;
b = PSW[250];
c = a + b;
DEBUG(20, " This is my test\n a= %d b= %d c= %d", a, b, c);
PSW[300] = 100;
PSW[400] = PSW[256] + PSW[300];
DEBUG(30, "PSW[256]= %d PSW[300]= %d PSW[400]= %d", PSW[256], PSW[300], PSW[400]);
Если в Глобальном макросе
#define DEBUG_ENB 1
то
при вызове макроса из примера
на экране панели появится на 20 сек сначала такое окно
> Func1 line 134 in Mac355\Mac355.c This is my test a= 2 b= 0 c= 2
Затем, на 30 сек такое окно
> Func1 line 137 in Mac355\Mac355.c PSW[256]= 0 PSW[300]= 100 PSW[400]= 100 -
Первая строка служебная, формируется автоматически и содержит название макроса, откуда вызывался DEBUG, и номер строки в скомпилированной программе.





Ответить с цитированием