EXEC SQL、EXEC CICS または EXEC DLI 文を含む PL/I プログラムでは、plitest パラメーターでプリプロセッサ -optexec オプションを使用できます。これによりプリプロセッサによって、コードに PL/I マクロが挿入されます。このマクロは PLITEST() コールをとおしてデバッガーを呼び出します。これは自動的に行われ、CodeWatch コマンドの明確な知識は必要ありません。
ただし、このデバッグ方法は EXEC 言語機能を持たないバッチ プログラムや、EXEC DLI の代わりに PLITDLI を使用する IMS ベースのプログラムには使用できません。
このようなプログラムでは PL/I マクロ プリプロセッサではなく EXEC プリプロセッサで使用される技法を使用して、自動的に PLITEST() の呼び出しを生成します。
%if ATTACHDEBUGGER %then %do; DCL JAVAUI FIXED BIN(31) NATIVE VALUE(1); CALL PLITEST("shlib " || procedurename() || ".dll;" || "env " || procedurename() || ";br STARTDEBUG;" || "br %exit [det;q];c", " ", JAVAUI); STARTDEBUG:; %end;
このコードによって、プログラムの実行時にデバッガー自体を自動的に添付し、STARTDEBUG ラベルの位置で停止します。
–deb -macro -define attachdebugger
コード サンプルで、%if..%do 条件は COBOL の $IF に、または C の #ifdef に機能的に似ています。サンプルは全体として CBL_DEBUGBREAK と機能的に同等であり、ブレークポイントの設定など、起動時に実行される CodeWatch コマンドを追加で指定できる機能が追加されています。