Tivoli Service Desk 6.0 Developer's Toolkit ツールおよびユーティリティーの手引き
Developer's Toolkit デバッガーは、Developer's Toolkit プログラムをデバッグするために使用されます。 Developer's Toolkit デバッガーを使用して、実行時コードの段階的な実行を検討することができます。
次の項では、Developer's Toolkit デバッガーの処理の基本手法を説明します。 別のビューアーの処理の追加情報は、この後方の項に説明されています。
Developer's Toolkit デバッガーを開始する方法はいくつかあります。Developer's Toolkit デバッガーはシングル・ステップ・モードで開始されます。すなわち、コードの実行は停止されます。 その後で、ステップイン 、ステップオーバー 、または ステップアウト を使用して、コードをデバッグします。 詳細については、この章の後にある コードの実行パスのトレースの項を参照してください。
KML -t <.kbc ファイル名 >
注: <.kbc ファイル名 > は、実行するためにコンパイル済みまたは解析済みの形式でなければなりません。
Developer's Toolkit デバッガーのオープンを選択した場合には、エラーが戻された時に 実行中であった行が選択されます。 debug510.dll が存在 しない 場合には、ユーザー が受け取るエラー・メッセージには、Developer's Toolkit デバッガーを開始するオプション が含まれていません。
注:
「実行」メニューには、Developer's Toolkit デバッガーを終了するために使用する 2 つのコマンド、すなわち、「クローズ」または「中断」があります。
Developer's Toolkit デバッガーによって、実際のソース・コードがなくてもデバッグを行なうことができます。 (Developer's Toolkit デバッガーに表示されるものは、ソース・コードの正確なコピーではありません。) ソース・コードの再編成処理の結果として、次の変更が行なわれます。
ソース | Developer's Toolkit デバッガー |
x :=3*(5+4); | x := 27; |
ソース | Developer's Toolkit デバッガー |
x :=c *(a+b); | x :=c*a+b; |
ソース | Developer's Toolkit デバッガー |
1997 年 6 月 3 日 | 6, 3, 1997 |
Developer's Toolkit デバッガーには、.kb ファイルのすべてのモジュールを表示するコード・ビューアーがあります。 これには、次のものが含まれています。
Lexical タブ (コード・ビューアーの右にある) は、アプリケーションの構造の高レベル・ビューを提供します。 これには、ユーザー・プログラムのモジュールのツリーが、各モジュールのそれと対応した関数とともに含まれています。
表示する関数を選択するには、次のようにしてください。
注: Developer's Toolkit デバッガーは、ブレークポイントを検出すると、この関数を 自動的に表示します。 ブレークポイントの詳細については、この章の後方にある ブレークポイント を参照してください。
変数ビューアーは、記憶域データを表示し、ローカルおよびグローバル変数にアクセスするために使用されます。
変数は次の方法で表示できます。
変数ビューアーには、レコード中のすべてのフィールドの情報が示されます。フィールドの値が変更された場合には、その変数ビューアー全体が最新表示されます。
注: 変数ビューアーによってアクセスしているレコードが大きい場合には、変数ビューアーがそれ自体を最新表示するのに数分かかることがあります。
自動最新表示の変数を設定するには、次のようにしてください。
注: アプリケーションで作業する時には、変数ビューアーは Developer's Toolkit デバッガーでオープンのままになることがあります。
変数ウィンドウをクローズするには、手操作でクローズするか、システム・メニューを選択するか、あるいは「変数ビューアー」ダイアログ・ボックスで「クローズ」を選択して行なうことができます。
スタックはコード・ビューアーの下にあります。スタックの関数をクリックすると、その関数がコード・ビューアーに表示されて、現在行が強調表示されます。
注: Developer's Toolkit 関数は再帰的であり、これは、同じ Developer's Toolkit デバッガー・セッション内の 1 つの関数に複数回ステップインできることを表します。 その関数の名前がそれぞれの再帰のスタック・ビューアーに表示されます。
その関数からステップアウトすると、その名前がスタックから消えます。
Developer's Toolkit デバッガーを使用して、アプリケーションの実行時パスをトレースすることができます。 これを行なうために、 Developer's Toolkit デバッガーには、次の 3 つのオプションがあります。
ステップイン は、コードの次の行を実行して、関数呼び出しが存在する場合には、その関数にステップインします。 ステップオーバー は、関数呼び出しにステップインしないで、コードの次の行を実行します。 ステップアウト は、現行関数の終わりまでコードを実行します。
コードへのステップイン、ステップアウト、またはステップオーバーは、「実行」メニューからコマンドを選択するか、あるいは Developer's Toolkit デバッガーのツールバーで対応するボタンをクリックして実行することができます。さらに、キーボードのショートカットも提供されています。
Developer's Toolkit デバッガーで作業する時には、それぞれのレベルの関数呼び出しを通って作業します。 各関数には、組み込み関数呼び出しを含めることができます。
Developer's Toolkit デバッガーによって、ユーザー・コードの関数にステップインして、その関数に定義されたアクションを表示できます。コードにステップインする時には、次の点に注意してください。
コードにステップインするためには、次の 1 つを実行できます。
その関数に定義された次のアクションに進むために、関数のステップスルーを続行することができます。 結果的に、END ステートメントに到達します。この時点で再び CTRL + I を押して、このコードにステップインした呼び出し関数の位置に戻ります。
関数にステップアウトすると、現行の関数、プロシージャー、またはイベント・ハンドラーがトレースなしで実行されます。コードの各行ごとの実行は表示されません。 トレースは、この呼び出しの後の最初のステートメントで再開されます。
注: イベント・ハンドラーをステップアウトした場合には、トレースは、そのイベントを生成したステートメントで再開されます。 複数のイベントが生成された場合には、トレースは、次のイベントの始めで再開されます。
関数またはイベント・ハンドラーの本体で実行が停止した場合には、そのコードをステップアウトすることができます。 また、ブレークポイントで実行が停止された場合にも、コードをステップアウトすることができます。
コードをステップアウトするためには、次の 1 つを実行できます。
コードのステップインおよびステップアウトの他に、コードのステップオーバーを行なうことができます。コードのステップオーバーでは、ステートメント・レベルの実行パスをトレースします。 次のステートメントに達するまで、この実行が続行されます。
注: ステップオーバーされた関数にエラーまたはブレークポイントがある場合には、その実行は停止します。
コードをステップオーバーするためには、次の 1 つを実行できます。
ブレークポイント は、実行の現行の状況をチェックするために、実行時コードの実行を停止する 1 つの方法です。 実行中にブレークポイントが検出されると、Developer's Toolkit デバッガーは、選択したブレークポイントを含む行のある関数を表示します。
注: イベント・ハンドラーが $MsgDDEInitiate を処理中の時には、イベント・ハンドラーにブレークポイントを設定しないでください。 $MsgDDEInitiate はアプリケーションにメッセージを同報通信して、応答が戻されるまでメッセージ待ち行列をロックします。 ブレークポイントを起動すると、(ロックされた) メッセージ待ち行列からの応答を待っているイベント・ハンドラーを開始します。 この結果はデッドロックとなり、実際上はユーザー・インターフェースをロックしてしまいます。
一時ブレークポイントが存在できるのは、Developer's Toolkit プログラムの実行中の間だけです。 一時ブレークポイントは、Developer's Toolkit デバッガー・セッションを終了すると、自動的に消去されます。 関数ビューアーと対話する時に、これらのブレークポイントを設定します。
一時ブレークポイントを設定するには、次のようにしてください。
注: 一時ブレークポイントは、実行可能なステートメント上に設定しなければなりません。 ELSE および ELSEWHEN ステートメントで始まる行には、ブレークポイントを設定することはできません。
静的ブレークポイントは、BreakPoint ステートメントを使用して Developer's Toolkit プログラム・ソース・コードに配置することができます。 BreakPoint ステートメントは、関数呼び出しまたはイベントの開始など、 "インタレストのポイント" がある時には常に追加することができます。 これによって、論理停止点でアプリケーションを停止して、そのアプリケーションの現在の状態を検討することができます。 BreakPoint ステートメントを除去する唯一の方法は、ソース・コードからそれを削除して、アプリケーション再び解析することです。
メニュー・コマンドを作成して、その BreakPoint ステートメントと関連付けることができます。これによって、アプリケーションから Developer's Toolkit デバッガーを開始することができます。
debug510.dll が存在しない場合には、Developer's Toolkit デバッガーは実行されません。
WinCreate または DlgCreate 上で、ブレークポイントを設定することにより、ウィンドウおよびダイアログ・ボックスをデバッグすることができます。 これのステートメントはウィンドウ・イベントを処理するイベント・ハンドラーを識別します。
WinCreate の実行をトレースするには、WinCreate にステップインしてから、生成された各メッセージをステップアウトしてください。
注: ペイント、アクティブ化、またはマウス処理のトレースには、Developer's Toolkit デバッガーを使用しないでください。
Tivoli Service Desk 6.0 Developer's Toolkit ツールおよびユーティリティーの手引き
-->