Вверх ↑
Ответов: 4622
Рейтинг: 746
#1: 2011-07-06 11:49:01 ЛС | профиль | цитата
Lehij73 писал(а):
и пусть именно он занимается дебагом самого себя

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

Как идея, могу предложить проработать концепцию самих компонентов такого пакета: в главном компоненте ставится свойство, например, DebugMode=True. Затем делается компонент Debug. Этот компонент проверяет DebugMode и если True, выводит значения полученные из связи, в которой он находится, во время тестирования во внешнем отладчике. Каким образом он их выводит - это зависит от целевого языка (MessageBox, консоль, отдельное окно, ещё как-то...).

Переработать make-библиотеку, чтобы при нажатии на кнопку запуска она открывала полученный файл во внешнем отладчике и отображала наши отладочные сообщения. Этим же способом можно приостанавливать выполнение кода в указанном месте: компонент Debug должен сгенерировать код, который приостановит выполнение до ответа пользователя.

Переключив DebugMode=False, мы получим финальный код, пригодный к исполнению, без необходимости удалять расставленные Debug-и из схемы. Кроме того, можно включать/выключать отдельные компоненты Debug с помощью их свойства, например, Enabled.

Но мне кажеться, что поскольку основные ошибки в традициооном программировании возникают по вине программиста, то HiAsm практически от них избавляет: разработчику пакета достаточно грамотно продумать код компонентов, чтобы автор схемы не беспокоился, например, о том, а вылетит ли моя программа, если возникнет деление на 0, или файл невозможно открыть на запись и т.п. То-есть, в компонентах нужно предусмотреть все возможыне варианты.
карма: 26

0