Отладка NMAKE скриптов

Раз уж я заговорил про BUILD и NMAKE, то вот несколько простых (и, в общем-то, очевидных) способов отладки NMAKE скриптов.

  1. Директива препроцессора !ERROR очень полезна, когда нужно выяснить доходит ли управление до интересующей нас линии скрипта. Директива выводит указанный текст в сообщении об ошибке (U1050) и останавливает NMAKE.

  2. !MESSAGE пригодится для дампа макросов в лог. Например:

!MESSAGE BUILD_PASS = $(BUILD_PASS)

Выведет в лог номер прохода (PASS0, PASS1 или PASS2), в случае, если NMAKE, был запущен через BUILD в билд-окружении WDK.

  1. NMAKE умеет вызывать внешние команды на этапе препроцессора. Этим можно воспользоваться, чтобы, например, посмотреть параметры командной строки, которые BUILD передает в NMAKE (и массу других вещей, само собой). Достаточно добавить в SOURCES:
!if [cmd /c pause]
!endif

Дойдя до той строки, NMAKE будет ждать ввода пользователя, позволяя тем самым внимательно посмотреть на то, что происходит в данный момент:

NMAKE остановлен в момент разбора SOURCES.

comments powered by Disqus