デバッガはJMPの新しいインスタンスとして起動します(図4.11)。元のインスタンスは、スクリプトによって何らかの操作を必要とするものが作成されるまで、操作不可能になります。操作の必要なものが作成された場合、ユーザがそれを実行するまで、デバッガウィンドウの方が操作不可能になります。その後、制御が再びデバッガに戻ります。JMPの元のインスタンスでの作業に戻るには、デバッガを閉じなければなりません。
図4.11 デバッガウィンドウ
デバッガとJSLプロファイルを操作するには、上部にあるボタンを使用します。デバッグまたはプロファイル作成の対象であるスクリプトがタブに表示されます。スクリプトの中に他のスクリプトが含まれているときは、それぞれが新しいタブに表示されます。
デバッガの最下部にあるタブには、変数や名前空間、ログ、現在の実行ポイントを表示するためのオプション、ブレークポイントを操作するためのオプション、および設定オプションがあります。
ヒント: 「デバッガ」にあるタブの長い値を表示あるいは編集するには、その値を右クリックして、[編集]を選択します。コードはスクリプトエディタ内で開くことができます。
デバッガまたはJSLプロファイル内でスクリプトの実行を制御するには、上部にあるボタンを使用します。
ボタン | ボタン名 | アクション |
---|---|---|
実行 | デバッガ内のスクリプトを、ブレークポイントまたはスクリプトの末尾まで実行します。 メモ: スクリプトにエラーがある場合は、ウィンドウの上部に短縮された形式のエラーメッセージが表示されます。[より詳細]をクリックすると、完全なエラーメッセージが表示されます。 | |
ブレークポイントなしで実行 プロファイルの実行 | スクリプトを、途中で停止することなく最後まで実行します。 | |
すべて中断 | たとえば、非常に長いループを実行しているときなど、スクリプトがビジーであるとき、[すべて中断]をクリックすると、スクリプト内のすべてのアクションが中断されてデバッガまたはJSLプロファイルに戻ります。 実行中のスクリプトが、ウィンドウへの入力や開いたウィンドウの操作など、ユーザの操作を待機している場合、デバッガおよびJSLプロファイルは実行を中断できないことがあります。 | |
停止 | スクリプトのデバッグを停止し、デバッガまたはJSLプロファイルを終了します。 | |
再開 | デバッガの現在のセッションを閉じ、新しいセッションを開きます。 | |
ステップイン | 関数内またはインクルードされたファイル内にステップインします。それ以外は、ステップオーバーと同じ働きをします。 | |
ステップオーバー | 呼び出された式、関数、またはInclude()ファイルにステップインすることなく、1行のすべての式、または複数行にまたがる複雑な式を実行します。 | |
ステップアウト | 現在のスクリプトまたは関数をブレークポイントまたは最後まで実行し、呼び出しポイントまで戻ります。主スクリプトにおいてデバッガが最後まで到達した場合は、「プログラムの実行が終了しました」というメッセージが表示されます。デバッガ自体は開いたままなので、プログラムの最終的な状態を点検することができます。 | |
JSLスクリプトの | JSLプロファイルを開きます。(JSLプロファイルを開始するには、[プロファイルの実行]ボタンを押します。)JSLプロファイルを使うと、特定の行の実行にかかった時間や、特定の行が実行された回数などがわかります。 メモ: • デバッガとJSLプロファイルの間を自在に切り替えることができるのは、プログラムの開始前のみです。 • デバッガのボタンの一部は、プロファイルの実行中は無効になります。 • JSLプロファイルモードでは、ブレークポイントがすべて無効になります。 | |
行の実行回数の | 各行が何回実行されたかを表示します。 | |
行の処理時間の | 行の実行にかかった時間を表示します。 | |
総数でプロファイルを表示 | 実行回数の場合は、その行が何回実行されたかを表示します。処理時間の場合は、その行が完了するまでにかかったマイクロ秒数(またはミリ秒数、秒数)を表示します。 | |
パーセントで | 実行回数の場合は、個々の行の実行回数を総数で割った値を表示します。処理時間の場合は、個々の行にかかった時間の割合(行の処理時間÷合計時間×100)を表示します。 | |
時間の単位 | 時間の単位をマイクロ秒、ミリ秒、秒のいずれかに設定します。JSLプロファイルで[プロファイルの実行]ボタンをクリックすると、使用できるようになります。 | |
カラーテーマ | JSLプロファイルの陰影の色を設定します。JSLプロファイルで[プロファイルの実行]ボタンをクリックすると、使用できるようになります。 |
デバッガの左下にあるタブでは、グローバル変数やローカル変数、ウォッチ変数、名前空間内の変数が確認できます。
グローバル
[グローバル]タブにはグローバル変数がリストされ、スクリプトの各ステップを実行するにつれて値が更新されます。変数は、初期化の際に追加されます。実行済みのスクリプトによってグローバル変数が定義されている場合は、デバッガの起動時に、それらの変数と現在の値が表示されます。変数の確認を参照してください。
ローカル
[ローカル]タブにはすべての変数がスコープ別にリストされ、スクリプトの各ステップを実行するにつれて値が更新されます。メニューからスコープを選択できます。変数の確認を参照してください。
ウォッチ
コードの各ステップを実行していく際、値を確認したい変数または式の値がある場合は、ここに追加します。これは、スクリプトで多くの変数を使用していて、[グローバル]や[ローカル]のリスト内で確認するのが難しい場合に特に便利です。ウォッチの操作を参照してください。
名前空間
定義された名前空間は、このメニューに追加されます。名前空間を選択すると、名前空間内で使用されている変数とその値が表示されます。変数の確認を参照してください。
クラス
[クラス]タブには、スクリプトの中で定義されているクラスがリストされます。クラスを参照してください。
デバッガの右下のタブでは、コールスタックの表示、ブレークポイントの操作、オプションの設定、ログの表示ができます。
コールスタック
コールスタックには、スクリプト内、関数内の現在の実行ポイントがリストされます。主スクリプトは常にリストの最初に表示されます。関数を呼び出すと、その関数は呼び出しスクリプトの上に追加されます。同様に、インクルードされたファイルもリストの一番上に追加されていきます。関数またはスクリプトの実行を終了すると、それがリストから削除され、次の関数またはスクリプトに戻ります。各ステップを実行するに従って、現在の行番号が更新されます。
コールスタック内の行をダブルクリックすると、カーソルがその行に移動します。
ブレークポイント
行に対してブレークポイントを追加、編集、削除したり、無効または有効にしたりできます。詳細については、ブレークポイントの操作を参照してください。[ブレークポイント]タブで行をダブルクリックすると、カーソルがその行に移動します。
データブレークポイント
変数に対してブレークポイントを追加、編集、削除したり、無効または有効にしたりできます。データブレークポイントは、行内の変更を監視するブレークポイントとは異なり、変数内の変更を監視します。
オプション
このタブでは、デバッガの環境設定をインタラクティブに設定できます。デバッガでの環境設定の変更を参照してください。
ログ
デバッグ中のスクリプトのログが表示されます。