EXEC CICS LINK 文による CICS アプリケーションのデバッグ

EXEC CICS LINK 文を使用するとき、LINK 文の実行の前に PL/I デバッガで 次のコマンドを使用して、呼び出されるプログラムのコードをデバッグします。

shlib [pgm].dll

ここで、[pgm] は EXEC CICS LINK で実行されるプログラムの名前です。

LINK 文の実行の前にこのコマンドを実行することによって、プログラムが実行前にロードするときロード・イベント (シグナル #6) が送出されます。

このプログラムには、EXEC CICS LINK を使用する PGMB プログラムへのリンクが含まれています。

PGMA:proc(comm_ptr) options(main,reentrant) reorder;
dcl comm_ptr pointer;
dcl data_lngth        fixed bin(15) init(100);
dcl commarea char(100) based(comm_ptr);

if eibcalen = 0 then
do;
alloc commarea set(comm_ptr);                      
commarea = '%from pgma';
end;
else;

exec cics link
program('pgmb ')
commarea(commarea)
length(data_lngth);

free commarea;

exec cics return;
end;

このサンプルでは、LINK 文の実行の前に shlib pgmb.dll コマンドを実行することによって、デバッグのセッションでプログラムがロードする前にロード・イベントが送出されます。ロード・イベントが受信されると、新しいプログラムに対して ENV コマンド (ここでは ENV pgmb) を実行することによって、実行を継続する前に 1 つまたは複数のブレーク・ポイントを設定できるようになります。なお、shlib はファイル名のレベルで機能するので、コマンドにはファイル拡張子が必要になります。