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

条件ブレークポイントには、そのブレークポイントをトリガするために満たす必要のある条件をテストするプロパティが割り当てられています。 例えば、以下があります。

条件ブレークポイントは、ヒットする頻度が高いと非常に侵入的となり、パフォーマンス低下の原因になる可能性があります。 これは、ブレークポイントがトリガされるたびにデバッガがターゲットを停止するためです。 指定された条件がチェックされ、評価結果として true が返された場合は、ターゲットが停止状態のままになり、それ以外の場合は実行が再開されます。

Note

サブブレークポイントを持つブレークポイントには、スクリプトを割り当てないでください。 スクリプトを割り当てると、デバッガがそれぞれのサブブレークポイントでスクリプトの実行を試みます。 この場合、エラーメッセージが表示されます。

[ブレークポイントのプロパティ]ダイアログボックスで既存のブレークポイントに条件を割り当てるには、以下の手順に従います。

  1. ブレークポイントビューで、変更するブレークポイントを右クリックしてコンテキストメニューを表示します。

  2. [Properties...]を選択して[Breakpoint Properties]ダイアログボックスを表示します。

  3. 特定のブレークポイントに関する条件式を設定するには、[Stop Condition]フィールドに C 形式の式を入力します。 例えば、アプリケーションに変数 x がある場合は、以下のように指定できます。

    x == 10

  4. 特定のパスカウントに達するまでブレークポイントのヒットを遅らせるようデバッガに指定するには、[Ignore Count]フィールドにパスカウントを入力します。 例えば、ループの繰り返し回数が 100 回の場合に、パスカウントが 50 に達した後でそのループのブレークポイントをヒットするようにするには、50 と入力します。

  5. 選択したブレークポイントがトリガされたときにスクリプトを実行するには、[On break, run script]フィールドで以下のいずれかの方法でスクリプトファイルを指定します。

    • 表示されるフィールドに場所およびファイル名を入力します。

    • [File System...]をクリックして、ワークスペースの外部にあるディレクトリのファイルを選択します。

    • [Workspace...]をクリックして、ワークスペース内のプロジェクトディレクトリまたはサブディレクトリのファイルを選択します。

    Note

    ブレークポイントが関連付けられているスクリプトファイルのコマンドには注意が必要です。 例えば、スクリプトファイルに quit コマンドが含まれている場合は、ブレークポイントがヒットされるとデバッガがターゲットから切断されます。

  6. ブレークポイントアクションがすべて完了したときにアプリケーションの実行を自動的に継続する機能をデバッガでイネーブルするには、[Continue Execution]チェックボックスを選択します。

    または、ブレークポイントに関連付けられているスクリプトファイルの最後のコマンドとして、continue コマンドを入力することもできます。

  7. ブレークポイントを 1 つ以上のスレッドまたはプロセッサで設定する場合は、以下の手順を実行します。

    1. 選択パネルを有効にするには、[選択したスレッドまたはコアでブレーク]を選択します。

    2. ブレークポイントを割り当てる各スレッドまたはプロセッサのチェックボックスを選択します。

  8. [OK]をクリックして変更を保存します。

Figure 9. 条件ブレークポイントの設定

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

複数のステートメントを使用してソースコードの単一行に設定されたブレークポイントは、サブブレークポイントとして親ブレークポイントに割当てられます。 各サブブレークポイントのイネーブル、ディセーブル、および表示は、単一のステートメントから成るブレークポイントと同じ方法で行うことができます。 条件は最上位のブレークポイントにのみ割り当てられるため、親ブレークポイントとサブブレークポイントの両方に影響します。

Show/hide複数の条件を単一のブレークポイントに設定する際の注意事項

複数の条件を単一のブレークポイントに設定するときは、以下の点に注意してください。

  • 停止条件と無視する回数を設定した場合、停止条件が満たされない限り、無視する回数はデクリメントされません。 例えば、変数 c によって制御され、繰り返し回数が 10 回に設定されているループにブレークポイントがあるとします。停止条件 c==5 を設定し、無視する回数を 3 に設定した場合、4 回目に c==5 でヒットするまで、このブレークポイントはアクティブにならない可能性があります。 その後は、c==5 でヒットするたびにアクティブになります。

  • 選択したスレッドまたはプロセッサでブレークするよう指定した場合、停止条件と無視する回数は選択したスレッドまたはプロセッサに対してのチェックされます。

  • 条件は、以下の順序で評価されます。

    1. スレッドまたはプロセッサ

    2. condition

    3. ignore count

Show/hide関連項目

Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0446IJ
Non-ConfidentialID051512