前ページへはじめに Animator の操作 次ページへ

第 2 章 Animator の起動

この章では、Animator の起動方法について説明します。

2.1 Animator を起動する前に

Animator を使用するには、呼び出される全プログラムを含め、すべてのソースコードをコンパイルする必要があります。使用している環境でのコンパイル方法の詳細については、『Server Express ユーザガイド』 を参照してください。プログラムの構文チェックには、COBOL Editor を使用できます。詳細は『Utilities Handbook』『Editor』 の章にある 『Syntax-checking and Animating』 の項を参照してください。1 行の文字数が 80 文字を超えるソースコードでも、SOURCEFORMAT"FREE" 指令でコンパイルすればアニメート可能です。ただし、Animator は書式のないソースコードを処理できますが、通常の COBOL の行数がスクロールの上限であるため、予想外の不都合が生じる場合があります。


: エスケープシーケンスを画面出力してカーソルや色の操作などを行うプログラムは、旧バージョンの製品では COBCTRLCHAR 環境変数の設定が必要であり、そのデバッグはサポートされていませんでした。現在の Server Express では COBCTRLCHAR はサポート対象ではなく、エスケープシーケンスの出力もサポートされていません。

画面操作用の COBOL 構文や COBOL ルーチンを使用せず、画面に直接出力するプログラムをデバッグするには、クロスセッションデバッグを実施する必要があります。クロスセッションデバッグの詳細については、『クロスセッションデバッグ』 を参照してください。


Animator では、あらゆる形式の実行可能ファイルのデバッグが可能です。次の各項では、Cob ユーティリティを使用して Animator で処理できる実行可能ファイルを作成する方法を説明します。Animator 用の実行可能ファイルを作成すると、常に Animator 情報ファイルが生成されます。このファイルは Animator に必要な追加情報を格納しており、拡張子は .idy です。Server Express で作成した .idy ファイルは、Net Express や Mainframe Express への移植が可能です。したがって、Net Express や Mainframe Express でもアプリケーションをデバッグできます。なお、.idy ファイルを移植するときには、対応する .int ファイルも同時に移植する必要があります。他の環境でデバッグするために .idy ファイルを移植する場合は、.int 以外の実行可能ファイルを使用できません。

システムが .idy ファイルの書き出しに失敗すると、次のエラーが通知されます。

I-O Error: IDY file (fatal)

このエラーが通知された場合は、ディスクの空き容量をチェックし、必要に応じて空き容量を増やします。さらに、ファイルに LOCK 属性や READ ONLY 属性が設定されている場合は、それを解除した後、プログラムを再コンパイルします。

Cob ユーティリティの詳細については、『Server Express ユーザガイド』 の次の章を参照してください。

.int ファイルは次のコマンドで作成します。
cob prog-name.cbl

Server Express はデフォルトで -a フラグを使用してソースファイルをコンパイルし、Animator で使用できるようにします。

.gnt ファイルは次のコマンドで作成します。
cob -ug prog-name.cbl
呼び出し可能な共有オブジェクトは次のコマンドで作成します。
cob -zg prog-name.cbl
システム実行可能ファイルは次のコマンドで作成します。
cob -xg prog-name.cbl

2.2 Animator の起動

Animator は、次の方法で起動できます。

この項では、Animator を起動するための各種の方法と、デバッグ対象のアプリケーションを設定する方法について説明します。いずれの場合でも、Animator でプログラムをデバッグするには、その前にプログラムをデバッグ用にコンパイルする必要があります。


: Animator は COBOL Editor から起動することも可能です。詳細については、『Utilities Handbook』『Editor』 の章にある 『Syntax-checking and Animating』 の項を参照してください。


Animator を起動する前に、使用している端末に応じて TERM 環境変数を適切な値に設定してください。現在の作業ディレクトリ以外の場所に格納されているソースファイルと情報ファイルを Animator に検索させるには、さらに 4 つの環境変数 (COBPATH、COBCPY、COBIDY、および COBAIF) を設定する必要があります。詳細については、『Server Express ユーザガイド』 の付録、『環境変数』 を参照してください。

2.2.1 コマンド行からの Animator の起動

Animator は、次の 3 通りの方法でコマンド行から起動できます。

2.2.1.1 端末からの Animator の起動

使用しているウィンドウで Animator を起動するには、次の anim コマンドを使用します。

anim [switchparams] program-name [directives]

または、デバッグ対象がマルチスレッドプログラムの場合には、anim の代わりに次の anim_t コマンドを使用します。

anim_t [switchparams] program-name [directives]

パラメータの内容は、次のとおりです。

switchparams 一連のスイッチ。有効化するスイッチにはプラス記号 (+)、無効化するスイッチにはマイナス記号 (-) をそれぞれ直前に付けます。スイッチの指定順序は特に決まっていません。前回のスイッチの設定は、受け付けられた設定です。

指定可能なスイッチについては、『Server Express ユーザガイド』『ランタイムスイッチの詳細』 の章を参照してください。

program-name アニメート対象のファイルの名前。パスを指定しない場合には、現行ディレクトリが検索されます。

拡張子を省略すると、最初に呼び出し可能な共有オブジェクトが検索され、続いて .gnt ファイル、.int ファイル、.lbr ファイルの順序でプログラムが検索されます。

directives 1 つ以上の Animator 指令を列挙した文字列 (省略可能)。それぞれの指令は 1 つ以上の空白文字で区切ります。複数の行にわけることはできません。

指定可能な Animator 指令については、『Animator 指令』 の章を参照してください。

2.2.1.2 異なるウィンドウやプロセスからの Animator の起動

Animator は、デバッグ対象のプログラムとは異なるウィンドウやプロセスでも起動できます。この起動方法は、動的アタッチによるオンデマンドデバッグで特に効果的です。この方法で Animator を起動するには、次の cobanim コマンドを使用します。

cobanim [switchparams] [directives]

デバッグ対象がマルチスレッドプログラムの場合は、cobanim の代わりに次の cobanim_t コマンドを使用します。

cobanim_t [switchparams] [directives] 

パラメータの内容は、次のとおりです。

switchparams 一連のスイッチ。有効化するスイッチにはプラス記号 (+)、無効化するスイッチにはマイナス記号 (-) をそれぞれ直前に付けます。スイッチの指定順序は特に決まっていません。前回のスイッチの設定は、受け付けられた設定です。

指定可能なスイッチについては、『Server Express ユーザガイド』『ランタイムスイッチの詳細』 の章を参照してください。

directives 1 つ以上の Animator 指令を列挙した文字列 (省略可能)。それぞれの指令は 1 つ以上の空白文字で区切ります。複数の行にわけることはできません。

指定可能な Animator 指令については、『Animator 指令』 の章を参照してください。

2.2.1.3 Animator のスリープモードでの起動

Animator はスリープモードで起動することもできます。この方法では、Animator はプロセスがアタッチされるまでスリープモードのまま待機し、プロセスがアタッチされると、デバッグ対象のプログラムとは別のウィンドウやプロセスで起動します。この起動方法は、クロスセッションデバッグで特に効果的です。Animator をスリープモードで起動するには、次の cobanimsrv コマンドを使用します。

cobanimsrv [directives]

デバッグ対象がマルチスレッドプログラムの場合には、cobanimsrv の代わりに次の cobanimsrv_t コマンドを使用します。

cobanimsrv_t [directives]

パラメータの内容は、次のとおりです。

directives 1 つ以上の Animator 指令を列挙した文字列 (省略可能)。それぞれの指令は 1 つ以上の空白文字で区切ります。複数の行にわけることはできません。

指定可能な Animator 指令については、『Animator 指令』 の章を参照してください。

2.2.1.4 Animator 指令の指定

Animator の起動時に指令を指定すると、Animator の動作を調整することができます。指令はコマンド行の program-name パラメータに続いて指定します。

ここでは Animator 指令の指定形式を説明します。各指令の詳細については、『Animator 指令』 の章を参照してください。

Animator 指令は次の形式で指定します。

[no] keyword=parameter

パラメータの内容は、次のとおりです。

no keyword に指定した指令を無効にします。nokeyword は、続けて記述することも、1 つ以上の空白文字で区切ることもできます。no で無効化できる指令は限定されています。このパラメータは、一部の指令にのみ有効で、該当する指令には、その旨が示されています。
keyword 1 つ以上の Animator 指令。指定可能な指令については、『Animator 指令』 を参照してください。

2 つ以上の指令を指定する場合には、指令全体を引用符で囲んで 1 つのグループであることを UNIX に対して明示します。引用符で囲まないと 2 番目以降の指令は無視されます。その場合でも、警告は表示されません。

parameter keyword の修飾語。parameter が効果を持つのは一部の指令のみです。該当する指令には、説明箇所でその旨を示しています。

=parameterkeyword は続けて記述します。UNIX は空白文字を区切り文字として処理するため、Animator のパラメータには空白文字を入れないでください。parameter にファイル名を指定する場合は、特に明示されていない限り、必ず完全パス名を含めます。

Animator 指令を $SET 文で指定したり、DIRECTIVES ファイル内に記述する場合には、parameter の直前に等号 (=) を付けません。代わりに "parameter" のように二重引用符で囲むか、または (parameter) のようにかっこで囲みます。

2.2.2 JIT デバッグ

JIT デバッグとは、プログラムが実行時エラーで終了した場合に Animator を起動させ、プログラムをデバッグする方法です。この方法を使えば、プログラムの異常発生時の状態を知ることができます。

JIT デバッグを使用するには、構成ファイルに debug_on_error 実行時調整変数を追加する必要があります。起動するデバッガを指定するには、debugger_command 実行時調整変数を構成ファイルに追加します。

実行時構成ファイルと実行時調整変数の詳細については、『Server Express ユーザガイド』『実行時の構成』 の章を参照してください。

2.2.3 コアファイルデバッグ

コアファイルデバッグでは、プログラムでエラーが発生した場合に、オペレーティングシステムが生成したコアファイルを使用して、問題の発生原因を詳しく調べることができます。コアファイルは、プログラムが異常終了した時点で当該プロセスに割り当てられていたメモリ領域のスナップショットです。

オペレーティングシステムにコアファイルを生成させるには、実行時構成ファイルに core_on_error 実行時調整変数を追加する必要があります。

実行時構成ファイルと実行時調整変数の詳細については、『Server Express ユーザガイド』『実行時の構成』 の章を参照してください。


: debug_on_error 実行時調整変数が設定されていると、core_on_error は追加しても無視されます。したがって、core_on_error を追加するときには、debug_on_error への参照をすべて削除する必要があります。


コアファイルの内容を表示するには、次のコマンドで Animator を起動します。

anim core

2.2.4 動的アタッチによるオンデマンドデバッグ

動的アタッチメントデバッグを使用すれば、実行しているプログラムの任意の位置で Animator を起動できます。動的アタッチメントデバッグを使用するには、アタッチ先のプロセスを Animator に通知する必要があります。

Animator をアタッチするプロセスのプロセス ID を取得するには、ps やその他の同等なシステムコマンドを使用します。プロセス ID の確認後、そのプロセス ID を使用して、次のコマンドで Animator を起動します。

anim process_id

2.2.5 CBL_DEBUGBREAK ルーチン

CBL_DEBUGBREAK は実行時ライブラリルーチンの 1 つであり、COBOL コードの実行中に任意の位置に Animator をアタッチできます。このルーチンをプログラム内に記述しておけば、CBL_DEBUGBREAK が呼び出された行で Animator がプログラムのデバッグを開始します。

CBL_DEBUGBREAK ルーチンの詳しい使用方法については、『ライブラリルーチン』 の章を参照してください。

2.2.6 画面スワップ用の画面サイズ指定

Animator がプログラムを実行する際に、実行されるプログラムが端末入出力を行う可能性があります。Animator とプログラムの両方が端末を使用するにもかかわらず、使用可能な端末が 1 つのみの場合は、Animator はプログラムの出力をバックグラウンドの仮想画面として保持します。F2 キー (F2=View) を押すと画面がスワップされ、仮想画面が表示されると同時に Animator がバックグラウンドに隠れます。また、ステップやズームなど一部の処理の実行中には、この画面スワップが Animator 自体によって実行されます。

仮想画面のサイズは、デフォルトでは 24 行です。Animator の起動前に LINES 環境変数を設定すれば、仮想画面のサイズを変更できます。たとえば、次のように設定します。

export LINES=40
anim program.int

LINES には、実際の画面の行数を超える値は設定しないでください。

環境変数の詳細については、『Server Express ユーザガイド』 の付録、『環境変数』 を参照してください。

2.2.7 aixterm 画面の余白部分について

AIX システムの aixterm 端末では、ウィンドウ枠と表示テキストの間に余白が表示されます。この余白部分は常に現行の背景と同じ色になります。Animator の使用時には、実行している機能 (データ項目の照会など) に応じて背景色が変化し、それに応じて端末の余白部分の色も変更されます。余白部分の色の変更を抑制するには、.Xdefaults ファイル内に次のように余白の幅を 0 に設定して、余白を削除します。

aixterm*internalBorder:0

2.2.8 .aif ファイルと Animator

Animator では、プログラムに設定された区切り点と監視対象の情報を保存できます。したがって、以前にデバッグしたプログラムを Animator にロードすると、前回のデバッグセッションと同じ区切り点と監視対象が復元されます。区切り点と監視対象の設定に関する情報は、セッション情報ファイルに保存されます。このファイルは拡張子 .aif を持ち、通常は .aif ファイルと呼ばれます。区切り点と監視対象については、『Animator の操作』 の章で詳しく説明します。

Animator に .aif ファイルの保存とロードを実行させるには、COBAIF 指令を使用します。この Animator 指令の詳細については、『Animator 指令』 の章を参照してください。

Animator が .aif ファイルの検索や作成を行うディレクトリは、$COBAIF 環境変数で指定できます。詳細については、『Server Express ユーザガイド』 の付録、『環境変数』 を参照してください。

Animator が .aif ファイルのロードや保存を行うのは、anim (または anim_t) で起動された場合のみです。次の場合には、セッション情報ファイルのロードや保存は実行されません。

2.3 プリプロセッサのデバッグ

プリプロセッサをデバッグするには、Animator を CBL_DEBUGBREAK ルーチンで起動する必要があります。プリプロセッサのソースコード内の適切な位置に CBL_DEBUGBREAK の呼び出しを記述します。このルーチンが呼び出されると Animator が起動し、プリプロセッサにアタッチされます。

2.4 混合言語デバッグ

混合言語のプログラミングを行うには Animator のほか、使用している非 COBOL 言語用のシステムデバッガが必要です。COBOL プログラムは Animator でデバッグし、別プロセスで動作している非 COBOL プログラムにはシステムデバッガを使用します。

COBOL プログラムと非 COBOL プログラムの両方をデバッグ用にコンパイルした後、COBOL プログラムを使用して Animator を起動します。Animator を起動するコマンドには、次のように MIXEDLANGDEBUG 指令を指定します。

anim prog mixedlangdebug 

: MIXEDLANGDEBUG 指令を指定した場合は、デバッグできるプログラムは .int ファイルだけに限定されます。


プログラムは、通常どおりステップ実行できます。COBOL プログラムから非 COBOL プログラムが呼び出されるたら、他の端末または X ウィンドウに移ります。実行中のプログラムのプロセス ID を grep などのシステムコマンドで取得します。

取得したプロセス ID を指定してシステムデバッガを起動します。システムデバッガのコマンドを使用して、呼び出された非 COBOL プログラムに制御が移った時点でデバッガを停止させます。続いて Animator が動作している端末または X ウィンドウから、非 COBOL プログラムの呼び出しにステップインします。

システムデバッガが動作している端末または X ウィンドウに戻ります。デバッガは呼び出されたプログラム内で停止しており、区切り点の設定やデータ項目の値の参照などのデバッグ操作を必要に応じて実行できます。


: システムデバッガの使用方法については、使用しているシステムのマニュアルを参照してください。本書では、システムデバッガの使用方法には触れません。


2.4.1 呼び出し可能な共有オブジェクトの混合言語デバッグ

複数の言語によるアプリケーション開発で、デバッグすべき非 COBOL オブジェクトから他の非 COBOL 共有オブジェクトが呼び出される場合には不都合が生じます。システムデバッガで呼び出し可能共有オブジェクトに区切り点を設定するには、そのオブジェクトがロードされていることが前提になるからです。

そのような場合にプログラムをデバッグするには、mF_cso_loaded() 関数に区切り点を設定します。この方法を使用すると、共有オブジェクトがランタイムシステムによってロードされるタイミングや、メモリからアンロードされるタイミングを知ることができます。呼び出し可能共有オブジェクトがロードされたことが確認できれば、区切り点を設定できます。

mF_cso_loaded() 関数は、呼び出し可能共有オブジェクトがロードまたはアンロードされるときに呼び出されます。この関数は 2 つの引数を取ります。最初の引数にはロードまたはアンロードされる呼び出し可能共有オブジェクトの名前を指定し、2 番目の引数には、ロードする場合は 0 を、アンロードする場合は 0 以外の値を指定します。

2.5 マルチスレッドプログラムのデバッグ

ここで説明する内容は、読者がマルチスレッドプログラムの開発に通じていることを前提としています。マルチスレッドプログラム開発に関する詳細は、『Multi-threaded Programming』 を参照してください。

マルチスレッドプログラムは Cob -t フラグを使用してコンパイルします。プログラムを実行するには、次のようにマルチスレッド用ランタイムシステムのトリガ cobrun_t を使用し、Animator 起動用の実行時スイッチ (+A) を設定します。

cobrun_t +A program

または、次のコマンドで Animator を起動します。

anim_t program

cobrunanim、および cobanim には、それぞれ対応するマルチスレッド版のトリガが存在します。すなわち、cobrun_tanim_t、および cobanim_t です。

Animator が起動すると、View Threads 機能を使用して複数のスレッドを表示できます。マルチスレッドアプリケーションのデバッグに使用できる機能については、『Animator の操作』 の章を参照してください。

コアファイルデバッグ、JIT デバッグ、および動的アタッチメントデバッグは、マルチスレッドプログラムにも前述した方法で実施できます。ただし、使用するトリガの末尾に _t を付ける必要があります。

2.5.1 マルチスレッドプログラムと Animator

マルチスレッドプログラムをデバッグする場合、Animator は次の 2 通りの方法で起動できます。

MULTITHREAD 指令を指定して起動した場合に、Animator はシングルスレッド版のランタイムシステムで動作しますが、アニメート対象のプログラムにはマルチスレッド環境が提供されます。この方法はマルチスレッド版ランタイムシステムによる処理負荷を伴わないため、Animator のパフォーマンス (処理速度) の低下を回避できます。ただし、シングルスレッド版とマルチスレッド版の 2 つのランタイムシステムをシステムのメモリ空間にロードするため、MULTITHREAD 指令を使用するとオペレーティングシステム全体のパフォーマンスに影響を与える可能性があります。

末尾に _t が付いたコマンドで Animator を起動すると、Animator とアニメート対象プログラムの両方がマルチスレッド版ランタイムシステムで動作します。この場合、Animator とプログラムはスレッドの状態情報を保持するために必要なあらゆるシステムリソースを使用し、それが両者のパフォーマンスを低下させる可能性があります。その一方で、オペレーティングシステムは 2 つのランタイムシステムの共有ライブラリに、同じコード空間を充てることができます。したがって、この方法は MULTITHREAD 指令に比べ、メモリの利用効率に優れています。

上記の 2 つの方法の使いわけについては、明確な基準はありません。一般的に言えば、処理速度を優先する場合には MULTITHREAD 指令を、メモリの利用効率を優先する場合には _t 付きのコマンドを使用します。

Animator 指令の詳細については、『Animator 指令』 の章を参照してください。

2.6 CGI プログラムのデバッグ

Animator を 次のいずれかの方法で使用すると、CGI プログラムもデバッグできます。

CGI プログラムのデバッグ方法の詳細については、『インターネットアプリケーション』『インターネットプログラムのビルド』 の章にある 『アプリケーションのデバッグ』 の項を参照してください。

2.7 クロスセッションデバッグ

クロスセッションデバッグとは、デバッグ対象プログラムが実行されているコンソールと異なるコンソールで Animator を使用するデバッグ手法です。この方法は動的アタッチによるデバッグに似ていますが、クロスセッションデバッグでは最初に Animator を起動して待機させます。その後、次のいずれかの条件を満たす COBOL プログラムを起動すると、そのプログラムに Animator がアタッチされます。

デバッグするプログラムを実行するディレクトリと同じディレクトリから Animator を起動した場合は、デバッグ対象のプログラムが、待機状態の Animator プロセスにアタッチされます。

たとえば、コンソールに次のように入力します。

cd /home/user/program/debug
cobanimsrv

これにより、Animator は /home/user/program/debug ディレクトリでプログラムが起動されるまで待機します。続いて、他のコンソールセッションで次のように同じディレクトリでプログラムを開始したとします。

cobrun /home/user/program/debug/prog1.int

この結果、prog1.int は待機中の Animator プロセスにアタッチされます。Animator のメイン画面が表示され、prog1.int の 1 行目にカーソルが位置します。

COBANIMSRV 環境変数を使用して、Animator プロセスとデバッグするプログラムのプロセスに一意の識別子を定義することもできます。これにより、Animator は識別子が一致するプログラムのみをデバッグします。たとえば、コンソールセッションで次のように入力します。

export COBANIMSRV=myid

この結果、myid が Animator とプログラムを関連付ける識別子として定義されます。続いて、次のコマンドで Animator を起動します。

cobanimsrv

Animator は、識別子が一致する COBOL プログラムが起動されるまで待機します。さらに、他のコンソールセッションで次のように入力します。

export COBANIMSRV=myid
cobrun prog1.int

prog1.int が起動すると、一意の識別子、 myid が Animator の識別子と一致するため、そのプロセスに Animator がアタッチされます。最初に使用したコンソールセッションに Animator のメイン画面が表示され、prog1.int の 1 行目にカーソルが位置します。

なお、Animator プロセスとデバッグ対象プログラムのユーザ ID は必ず一致させてください。ユーザ ID が一致しないと、この方法は機能しません。

2.8 リモートデバッグ

Net Express を使用して、UNIX システムでプログラムをデバッグすることができます。この機能を使用すれば、Server Express で UNIX 向けに開発したプログラムや、Net Express の UNIX オプションを使用して UNIX システムに配布したプログラムをデバッグできます。リモートデバッグ機能は Net Express 3.0 で提供されています。リモートデバッグの詳細については、Net Express のマニュアルを参照してください。

UNIX 上のプログラムを Net Express からリモートデバッグするには、使用する UNIX システム上でデバッグサーバを起動する必要があります。デバッグサーバには 2 種類あり、シングルスレッドアプリケーションとマルチスレッドアプリケーションの両方をデバッグできます。デバッグサーバを起動するコマンドは次のとおりです。

デバッグサーバの基本的な機能はすべてのバージョンで共通ですが、[Break] ボタンの通知やアプリケーション実行中の区切り点設定といった非同期イベントの処理では、マルチスレッド版の方が優れています。

デバッグサーバのバージョンとデバッグするアプリケーションの種類との関係は、特に厳密ではありません。すなわち、animserv32animserv64 を起動してマルチスレッドのアプリケーションをデバッグしたり、animserv32_tanimserv64_t を起動してシングルスレッドのアプリケーションをデバッグすることも可能です。ただし、非同期イベントへの応答を重視しない場合には、シングルスレッドのアプリケーションには animserv32 または animserv64、マルチスレッドのアプリケーションには animserv32_t または animserv64_t を起動する方がシステムリソースの使用効率の点で望ましいと言えます。

2.8.1 animserv32 と animserv64 の使用方法

animserv32 および animserv64 のデバッグサーバは、次のいずれかのコマンドで起動します。

animservxx [port(nnn)]
animservxx [port=nnn]

パラメータの内容は、次のとおりです。

xx 32 ビットシステムで起動する場合は 32、64 ビットシステムで起動する場合は 64 を指定します。
nnn ポートの動的割り当てを行わない場合に、使用するポートの番号を指定します。同じマシンを使用してリモートデバッグを並行して実行する場合以外は、この指定を省略できます。ポート番号として指定できるのは 1025 以上の固有値です。省略するとポート番号は自動的に割り当てられ、端末に表示されます。Net Express の〔アニメート設定〕ダイアログボックスには、このポート番号を入力します。詳細については、Net Express のマニュアルを参照してください。

2.8.2 animserv32_t と animserv64_t の使用方法

animserv32_t および animserv64_tのデバッグサーバは、次のいずれかのコマンドで起動します。

animservxx_t [port(nnn)] [{multi|single}]
animservxx_t [port=nnn] [{multi|single}]

パラメータの内容は、次のとおりです。

xx 32 ビットシステムで起動する場合は 32、64 ビットシステムで起動する場合は 64 を指定します。
nnn ポートの動的割り当てを行わない場合に、使用するポートの番号を指定します。同じマシンを使用してリモートデバッグを並行実行する場合以外は、この指定は省略できます。ポート番号として指定できるのは 1025 以上の固有値です。省略するとポート番号は自動的に割り当てられ、端末に表示されます。
single シングルスレッド版のランタイムシステムを使用します。このパラメータを指定して起動したデバッグサーバは、animserv32animserv64 と実質的に同じです。
multi マルチスレッド版のランタイムシステムを使用します。

Net Express の〔アニメート設定〕ダイアログボックスには、ポート番号を入力する必要があります。詳細については、Net Express のマニュアルを参照してください。

2.9 HP-UX 上の共有ライブラリのデバッグ

HP-UX のみ
HP-UX 上で共有ライブラリをデバッグするには、共有ライブラリを常にプライベートメモリにロードする命令を HP-UX ダイナミックリンカに与え、共有メモリへのロードを防止する必要があります。共有メモリにロードされた共有ライブラリには、Animator で区切り点を設定することができません。

共有ライブラリや共有ライブラリを含むプログラム (.sl ファイル) を Animator でデバッグするときは、対象プログラムの一連の起動処理が Animator によって動的に変更されます。その結果、共有ライブラリは必ずプライベートメモリにロードされます。

また、動的アタッチなどを使用して実行中のプロセスを動的にデバッグする場合には、標準では共有ライブラリがプライベートメモリにマップされないため、Animator は共有ライブラリに区切り点を設定できません (動的アタッチメントデバッグについては、『動的アタッチによるオンデマンドデバッグ』 の項を参照してください)。


: この制約は HP-UX 全般に共通であり、dde と gdb も対象になります。


実行中のプロセスに Animator を動的にアタッチし、その中に含まれる共有ライブラリをデバッグするには、プロセスを起動する前に、実行可能ファイルを pxdb コマンドで処理する必要があります。

共有ライブラリや共有ライブラリを含む実行可能ファイルに対してデバッグを行うには、次のコマンドを実行します。

/opt/langtools/bin/pxdb -s on executable 

これらの実行ファイルのデバッグを無効化するには、次のコマンドを実行します。

/opt/langtools/bin/pxdb -s off executable 

executable には、共有ライブラリのファイル名 (.sl ファイル) または共有ライブラリを含む実行プログラム指定します。


警告 : 上記の方法で実行可能ファイルのデバッグを有効化すると、実行可能ファイルからロードされる共有ライブラリは、実行可能ファイルのインスタンスごとにプライベートメモリにマップされるようになります。その結果、実行可能ファイルが複数回起動されるマルチユーザ環境では、大量のメモリが消費される場合があります。


2.10 エラーメッセージ

構文上の問題を含まないプログラムでも、中間コードにコンパイルして実行すると問題が発生し、ランタイムシステムによってエラーメッセージが返される場合があります。プログラムのアニメート中に発生した実行時エラーは、画面の最下行に表示されます。生成される可能性がある実行時エラーの一覧と形式については、『エラーメッセージ』 を参照してください。

2.11 コピーファイルと情報ファイルの検索先

COBOL プログラムのコンパイル時には、プログラム本体のソースファイルと同じディレクトリ内でコピーファイルが検索されます。COBCPY 環境変数を使用すれば、このディレクトリでコピーファイルが見つからなかった場合に、COBOL コンパイラが検索するディレクトリを指定できます。Animator の使用時には、コンパイル時にコピーファイルが見つかったディレクトリが最初に検索されます。その結果、コピーファイルが見つからなければ、続いて COBCPY 環境変数で指定された各ディレクトリが検索されます。

COBCPY 環境変数を設定するには、次のように記述します。

COBCPY=/usr/group/sharedcopy:/usr/mydir/mcpy
export COBCPY

プログラムのアニメート時には、対象のプログラムと同じディレクトリ内で Animator 情報ファイル (.idy ファイル) が検索されます。COBIDY 環境変数を使用すれば、このディレクトリで .idy ファイルが見つからなかった場合に、Animator が検索するディレクトリを指定できます。COBIDY 環境変数を設定するには、次のように記述します。

COBIDY=:/usr/myapp/idyfiles:/usr/common/idyfiles
export COBIDY


Copyright(C) 2001 Micro Focus. All rights reserved.
本書、ならびに使用されている固有の商標と商品名は国際法で保護されています。

前ページへはじめに Animator の操作次ページへ