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 はファイル名のレベルで機能するため、コマンドにはファイル拡張子が必要になります。