Tivoli Service Desk 6.0 Developer's Toolkit ツールおよびユーティリティーの手引き

第 2 章: Developer's Toolkit デバッガー

目次に戻る


概要

Developer's Toolkit デバッガーは、Developer's Toolkit プログラムをデバッグするために使用されます。 Developer's Toolkit デバッガーを使用して、実行時コードの段階的な実行を検討することができます。

次の項では、Developer's Toolkit デバッガーの処理の基本手法を説明します。 別のビューアーの処理の追加情報は、この後方の項に説明されています。

Developer's Toolkit デバッガーのオープンおよびクローズ

Developer's Toolkit デバッガーのオープン

Developer's Toolkit デバッガーを開始する方法はいくつかあります。Developer's Toolkit デバッガーはシングル・ステップ・モードで開始されます。すなわち、コードの実行は停止されます。 その後で、ステップインステップオーバー 、または ステップアウト を使用して、コードをデバッグします。 詳細については、この章の後にある コードの実行パスのトレースの項を参照してください。

KML -t <.kbc ファイル名 >

Developer's Toolkit デバッガーの終了

「実行」メニューには、Developer's Toolkit デバッガーを終了するために使用する 2 つのコマンド、すなわち、「クローズ」または「中断」があります。

Developer's Toolkit デバッガーのコード

概要

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 タブ (コード・ビューアーの右にある) は、アプリケーションの構造の高レベル・ビューを提供します。 これには、ユーザー・プログラムのモジュールのツリーが、各モジュールのそれと対応した関数とともに含まれています。

表示する関数を選択するには、次のようにしてください。

  1. Lexical タブでは、表示したい関数が含まれているモジュールをクリックします。
  2. 表示したい関数をクリックします。
  3. 注: Developer's Toolkit デバッガーは、ブレークポイントを検出すると、この関数を 自動的に表示します。 ブレークポイントの詳細については、この章の後方にある ブレークポイント を参照してください。

変数の表示

変数ビューアーは、記憶域データを表示し、ローカルおよびグローバル変数にアクセスするために使用されます。

変数は次の方法で表示できます。

変数の自動最新表示

変数ビューアーには、レコード中のすべてのフィールドの情報が示されます。フィールドの値が変更された場合には、その変数ビューアー全体が最新表示されます。

注: 変数ビューアーによってアクセスしているレコードが大きい場合には、変数ビューアーがそれ自体を最新表示するのに数分かかることがあります。

自動最新表示の変数を設定するには、次のようにしてください。

  1. コード・ウィンドウでは、ホット変数名をダブルクリックします。
  2. 「自動最新表示」チェック・ボックスを選択します。

注: アプリケーションで作業する時には、変数ビューアーは 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 デバッガー・セッションを終了すると、自動的に消去されます。 関数ビューアーと対話する時に、これらのブレークポイントを設定します。

一時ブレークポイントを設定するには、次のようにしてください。

  1. コード・ウィンドウの 1 行をクリックします。ブレークポイントを示す * 記号が表示されます。

注: 一時ブレークポイントは、実行可能なステートメント上に設定しなければなりません。 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 ツールおよびユーティリティーの手引き

目次に戻る

著作権

-->