EXEC SQL、EXEC CICS または EXEC DLI 文を含む PL/I プログラムでは、plitest パラメーターでプリプロセッサ -optexec オプションを使用できます。これによりプリプロセッサによって、コードに PL/I マクロが挿入されます。このマクロは PLITEST() コールをとおしてデバッガーを呼び出します。これは自動的に行われるため、PLIDEBUG.DAT などのサイド ファイルを編集する必要がありません。また、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 コマンドを指定できる機能が追加されています。