「ブレークポイント」ビューと「変数」ビューに加えて、以下の領域のコントロールを使用して EGL デバッガーに指示できます。
- 「デバッグ」ビューのツールバーのボタン
- ブレークポイントを設定するグレーの領域を右クリックすることにより使用できるコンテキスト・メニュー・オプション
ツールバーのボタン
- 再開
- 次のブレークポイントまで、または実行単位が終了するまで、コードを実行します。それに従ってデバッガーを設定すると、デバッガーはメイン関数の最初のステートメントで停止します。EGL デバッガーの設定の変更を参照してください。
- 中断
- 次の機会にデバッガーの実行を一時停止させます。
このボタンは、実行が進行中の場合にのみ使用できます。
- 強制終了
- それ以上の命令を実行せずにプログラムを強制終了します。
- ステップイントゥ
- 次の EGL 文を実行して、休止します。
- 以下に、
特定の文タイプに step into コマンドを実行した場合の動作をリストします。
- call
- 呼び出し先プログラムが EGL デバッガー内部で実行中の場合は、呼び出し先プログラムの最初の文で停止します。呼び出し先プログラムが EGL デバッガー外部で実行中の場合は、現在のプログラムの次の文で停止します。
- EGL デバッガーはワークベンチ内のすべてのプロジェクト内で受信プログラムを検索します。
- converse
- ユーザー入力を待ちます。この入力によって、バリデーター関数に含まれる可能性のある次の実行中の文で処理が停止します。
- forward
- コードが JSF ハンドラーに転送されると、デバッガーはユーザー入力を待ってから、次に実行するステートメントで停止します。このステートメントは、バリデーター関数内に含まれている場合があります。コードがプログラムに転送されると、
デバッガーはそのプログラム内の最初の文で停止します。
- function invocation
- 関数の最初の文で停止します。
- show、transfer
- それに従ってデバッガーを設定すると、デバッガーは制御を受け取るプログラムの最初のステートメントで停止します。EGL デバッガーの設定の変更を参照してください。ターゲット・プログラムは、EGL デバッガーで稼働する EGL ソース・コードであり、EGL 生成コードではありません。
- show ステートメントまたは transfer ステートメントいずれかの実行後、EGL デバッガーは新規プログラム用のビルド記述子に切り替えるか、または (ビルド記述子が使用されていない場合は) 新規ビルド記述子のプロンプトを出します。新規プログラムは、以前に実行されたプログラムとは異なるプロパティー・セットを持つことができます。
- ステップオーバー
- 次の EGL ステートメントを実行して休止しますが、ステートメントから呼び出された関数内では停止しません。
- 以下に、特定の文タイプに step over コマンドを実行した場合の動作をリストします。
- converse
- ユーザー入力を待ってから、検証機能をスキップします (ブレークポイントが有効でない場合)。converse 文の後の文で停止します。
- forward
- コードが JSF ハンドラーに転送されると、デバッガーはユーザー入力を待ちます。その後、ブレークポイントが有効になっていない限り、バリデーター関数内ではなく、次に実行されるステートメントで停止します。
- コードがプログラムに転送されると、
デバッガーはそのプログラム内の最初の文で停止します。
- show、transfer
- それに従ってデバッガーを設定すると、デバッガーは制御を受け取るプログラムの最初のステートメントで停止します。EGL デバッガーの設定の変更を参照してください。ターゲット・プログラムは、EGL デバッガーで稼働する EGL ソース・コードであり、EGL 生成コードではありません。
- show ステートメントまたは transfer ステートメントいずれかの実行後、EGL デバッガーは新規プログラム用のビルド記述子に切り替えるか、または (ビルド記述子が使用されていない場合は) 新規ビルド記述子のプロンプトを出します。新規プログラムは、以前に実行されたプログラムとは異なるプロパティー・セットを持つことができます。
- ステップ・リターン
- 呼び出し側のプログラムまたは関数に戻る必要のあるステートメントを実行して、そのプログラムまたは関数内の制御を受け取るステートメントで休止します。
- バリデーター関数内の step return コマンドは、
例外です。その場合、振る舞いは step into コマンドの振る舞いと同一になります。つまり、主に EGL デバッガーが次の文を実行して休止することを意味します。
- フレームにドロップ
- 「デバッグ」ビューに表示されたスタックからフレームを選択し、「フレームにドロップ」ボタンをクリックして、選択されたフレームより上のすべてのフレームをスタックからポップします。選択されたフレームは、最初のステートメントに位置変更されます。この場合、ポップまたは位置変更されたフレームで発生した内容は取り消されません。
現在のフレームにドロップすると、プログラムはフレームの最初のステートメントに戻ります。フレームは、関数、グローバル変数 initializer ステートメント、または openUI ステートメントを表します。スタックは、現在のフレームのリストです。
関数で実行されている最後の文に step into または step over のコマンドを実行する (および、その文が return、exit program、exit rununit、または exit stack でない) と、関数にローカルな変数を検討できるように、関数自体で処理が休止します。この場合、デバッグ・セッションを継続するには、別のコマンドを実行します。
「ステップ・フィルターの使用」ボタンは、EGL をデバッグしているときは効果がありません。
コンテキスト・メニューのオプション
- 指定行まで実行
- すべての文を、指定した行の文まで (その文は含めない) 実行します。
- 行番号を指定してジャンプ
- コード行の左にあるグレーの境界線を右クリックしてから、このオプションをクリックすると、デバッガーでその行に移動できます。ジャンプ可能なのは、現在アクティブとなっているスタックの一部である関数内の行のみです。つまり、現在の関数内か、または現在の関数を呼び出した関数内の行にのみジャンプできます。
このコマンドは、Rich UI デバッグでは使用できません。
- ブレークポイントを追加
- 処理が休止する行を識別します。コードの実行を休止すると、
可変値とともにファイルおよび画面の状況を調べることができます。ブレークポイントは、
除去されない限り、デバッグ・セッションから次のデバッグ・セッションまで保持されます。
ブレークポイントを、ブランク行またはコメント行に設定することはできません。
- ブレークポイントを使用不可にする
- ブレークポイントを非活動化します (除去はしません)。
- ブレークポイントを使用可能にする
- 以前に使用不可にされたブレークポイントを活動化します。
- ブレークポイントを除去
- 処理が行で自動的に休止しないように、ブレークポイントをクリアします。
- すべてのブレークポイントを除去
- すべてのブレークポイントをクリアします。
EGL デバッガーは、次の EGL システム関数を無視します。
- sysLib.audit()
- sysLib.purge()
- vgLib.startTransaction()
例えば、これらの文にブレークポイントを追加できますが、step into コマンドは後続の文に続けて実行されるだけで、他の文は影響を受けません。
他のコントロール
変数ビューとブレークポイント・ビューでは、追加のオプションを使用できます。詳しくは、『EGL デバッガーでの変数の表示』および『EGL デバッガーでのブレークポイントの使用』を参照してください。
互換性
表 1. デバッガー・コントロールの互換性に関する考慮事項| プラットフォーム |
問題 |
| Web トランザクション |
バリデーター関数からポップすることはできません。例えば、スタックに、converse ステートメント、その後にバリデーター関数、その後にバリデーター関数によって呼び出される関数が含まれている場合、バリデーター関数にドロップすることはできますが、converse ステートメントにはドロップできません。 |