Решение основано на предположении, что среда разработки имеет уникальную запись propath, которая недоступна в других средах, и код перекомпилируется при перемещении:
&IF DEFINED(DEBUGGING) = 0 &THEN
&IF PROPATH MATCHES '*development*' &THEN
&GLOBAL-DEFINE DEBUGGING TRUE
&ELSE
&GLOBAL-DEFINE DEBUGGING FALSE
&MESSAGE Remove debugging: search for DEBUG within the code.
&ENDIF
&ENDIF
&IF DEFINED(DEBUGGING_STARTED) = 0 &THEN
&GLOBAL-DEFINE DEBUGGING_STARTED TRUE
IF {&DEBUGGING} THEN
DO:
&ELSE
END.
&UNDEFINE DEBUGGING_STARTED
&ENDIF
Использование
Сохранить файл как «отладочный» (без расширения) в каталог, на который указывает propath, затем:
{debug}
/* some debugging code here */
{debug/}