Архив метки: debug

Отладка программ

Не так давно кидал в рассылку информацию с буржуйского форума о вызове отладчика в процессе работы программы. Дошли руки проверить. Классная вещь! Можно фактически отказаться от использования STOP.

Делается так.

1. Регистрируем клашин отлдчик как системный (в нем есть такой пункт меню).
2. В точке вставке Global Map пишем

    MODUL('WinApi')
       DebugBreak(),PASCALE,RAW,NAME('DebugBreak')
    END

Проще всего это «прибить намертво» в шаблонах.

3. В том месте, где нужно отлаживаться пишем (с первой колонки)

   ? DebugBreak  

Проще всего навесить на макрос, например AltD, последовательность «EndKey+EnterKey+? DebugBreak».

4. Компилим и запускаем программу на исполнение. Доходим до нужного места и получаем виндовый GPF. Жмем в нем кнопку «Отладчик». Открывается клашин отладчик и активизируется окно локальных переменных. В нем видим неопознанную переменную. Жмем на ней правую мышу и выбираем «открыть в исходниках опосля». Пару раз жмем AltE и (о чудо!) перескакиваем в нужный нам отлаживаемый исходный текст.
Особенно понравилось, что данную схему удобно использовать в multi-dll приложениях. Ставим точку останов в dll-модуле, компилим, копируем dll в каталог сборки и запускаем приложение. В нужном месте автоматом переходим в отладчик. Т.е. не нужно переводить модуль в exe, придумывать тестовый вызов и т.п.

Проверял на C55H, WinXP SP1.

С уважением,
Вячеслав Черников support@finsoft.ryazan.ru