公開日: 11/25/2021

ブレークポイントの操作

ブレークポイントはスクリプトの実行を中断します。スクリプトのデバッグは一行ずつ進めることができますが、スクリプトが長い、または複雑な場合、退屈で時間のかかる作業になってしまいます。そのような場合、確認したい位置にブレークポイントを設定し、デバッガでスクリプトを実行することができます。スクリプトは、ブレークポイントに達するまで通常どおりに実行されます。ブレークポイントの位置で実行が中断されるので、変数の値を確認したり、そこから一行ずつのデバッグを開始したりできます。

右下隅の[ブレークポイント]タブに表示されるブレークポイントは行内の変更を監視します。[データブレークポイント]タブに表示されるブレークポイントは変数内の変更を監視します。

JMPは、セッションを越えてブレークポイントを保持するため、JMPを閉じて再度開いても、ブレークポイントは同じ位置に表示されます。

ヒント: 行番号をオンにするには、スクリプト内を右クリックし、[行番号を表示する]を選択します。すべてのスクリプトでデフォルトで行番号を表示させるには、スクリプトエディタの環境設定で[行番号を表示する]をオンにします。

ブレークポイントの作成

ブレークポイントを作成する際、条件やブレーク時の動作を指定することができます。それには、[ブレークポイント]タブまたは[データブレークポイント]タブのImage shown hereをクリックし、ブレークポイントの情報を入力します。

また、次のいずれかの手順ですばやくブレークポイントを作成できます。

デバッガの余白で、該当する行をクリックします(行番号が表示されている場合は、行番号の右側)。

デバッガの余白で、ブレークポイントを設定したい位置を右クリックし、[ブレークポイントの設定]を選択します。

ブレークポイントを挿入した箇所と[ブレークポイント]タブに、赤いブレークポイントアイコンが表示されます。

ブレークポイントの削除

次のいずれかを実行します。

デバッガの余白で、ブレークポイントアイコンをクリックします。

デバッガの余白で、ブレークポイントアイコンを右クリックし、[ブレークポイントのクリア]を選択します。

[ブレークポイント]タブでブレークポイントを選択し、Image shown hereをクリックします。

[ブレークポイント]タブでImage shown hereをクリックし、(選択したブレークポイントだけではなく)すべてのブレークポイントを削除します。

赤いブレークポイントアイコンが消え、[ブレークポイント]タブにもブレークポイントが表示されなくなります。

ブレークポイントの有効化および無効化

スクリプトのエラーを修正した後、そのブレークポイントを通過して正常に実行できるかどうかを確認するには、ブレークポイントを無効にします。ブレークポイントは、いつでも必要なときに有効にできるため、作成し直す必要がありません。

次のいずれかを行います。

デバッガの余白で、ブレークポイントアイコンを右クリックし、[ブレークポイントを有効にする]または[ブレークポイントを無効にする]を選択します。

[ブレークポイント]タブで、ブレークポイントのチェックボックスを選択するか、選択を解除します。

[ブレークポイント]タブでImage shown hereをクリックし、すべてのブレークポイントを無効または有効にします。

無効になったブレークポイントのアイコンは白、有効になったブレークポイントのアイコンは赤で表示されます。

ブレークポイントへの条件式の指定およびクリア

コードを1ステップずつデバッグする代わりに、ブレークポイントに条件を設定することができます。1ステップごとに実行して各式の変数を確認するのではなく、条件が合ったときにだけ、スクリプトを中断するよう指定できます。中断したら、コードをステップごとに実行して問題が生じる位置を特定できます。

たとえば、スクリプト内の計算が間違っていて、問題が起こるのはi==19のときだと推測しているとしましょう。この場合、i==18に条件付きブレークポイントを設定しておくと、その条件が満たされた時点でデバッガによる実行が中断されます。その後、コードを1ステップずつ確認して問題を特定します。

ブレークポイントの条件の指定

1. ブレークポイントアイコンを右クリックし、[ブレークポイントの編集]を選択します。

2. [条件]タブで[条件]を選択し、条件式を入力します。

3. 式が[真の場合]または[変更された場合]のどちらに中断するかを指定します。

4. [OK]をクリックします。

条件の無効化または有効化

1. ブレークポイントアイコンを右クリックし、[ブレークポイントの編集]を選択します。

2. [条件]タブで、[条件]を選択解除または選択します。

条件の削除

[ブレークポイント]タブで、ブレークポイントの条件フィールドをクリックし、Deleteキーを押します。

ブレークオプションの指定

ブレークポイントを右クリックして[ブレークポイントの編集]を選択すると、ブレークポイントの動作を簡単に管理できます。または、[ブレークポイント]タブでブレークポイントを選択し、Image shown hereをクリックします。どちらの方法でも「ブレークポイント情報」ウィンドウが開くので、[ヒットカウント]タブと[アクション]タブで設定をカスタマイズします。

ヒットカウントの変更

ブレークポイントがヒットする回数を指定して、中断のタイミングを制御します。たとえば、条件が2回満たされたときに中断させるには、[ヒットカウント]タブで[ヒットカウントが指定された値と等しい場合に中断:]を選択し、「2」をタイプします。

アクションの定義

ブレークポイントがヒットしてスクリプトの実行が中断されたときに、デバッガにスクリプトを実行させることができます。このスクリプトをアクションといいます。[アクション]タブで、実行するスクリプトを入力します。

カーソルの位置までスクリプトを実行

右クリックして[カーソルの位置まで実行]を選択すると、カーソルの位置より前にあるすべての式が実行されます。現在の行までの値だけを確認したいときにこのオプションを選択します。各式が実行されたときの値を確認するには、ステップオプションを使用します。

ブレークポイントの設定に関するヒント

あるループの中でエラーの確認が不要な場合は、ループが終わった後の位置にブレークポイントを設定します。デバッガは、ループを1行ずつ実行するのではなく、次のブレークポイントまで実行します。

アクションをトリガしない行(コメント、改行、閉じ括弧など)にはブレークポイントを挿入しないでください。これらの行では中断できません。

いったんブレークポイントを挿入すると、デバッガを閉じてスクリプトを編集しても、ブレークポイントが元の行番号とともに残ります。必要なら、ブレークポイントを削除し、挿入し直してください。

ブレークポイントはデバッガのセッションを越えて保存されます。つまり、ブレークポイントリストには、現在デバッグを行っているスクリプトだけでなく、すべてのスクリプトに設定されたブレークポイントが含まれます。

ブレークポイントは、スクリプトにではなく、デバッガセッションによって保存されます。つまり、移動または削除されたスクリプトのブレークポイントであってもリストされます。

[ブレークポイント]タブでImage shown hereをクリックすると、スクリプトが開いているかどうか、スクリプトがまだ存在するかどうかに関係なく、スクリプト内のブレークポイントがすべて削除されます。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).