3.8 条件ブレークポイント

条件ブレークポイントには、そのブレークポイントをトリガするために満たす必要のある条件をテストするプロパティが割り当てられています。ベースとなっているブレークポイントに達すると、指定された条件がチェックされ、評価結果として true が返された場合は、ターゲットが停止状態のままになり、それ以外の場合は実行が再開されます。

例えば、条件ブレークポイントを使用して以下を行うことができます。
  • 特定の値の変数をテストする。
  • 関数を特定の回数実行する。
  • 特定のスレッドまたはプロセッサでのみブレークポイントをトリガする。
複数のステートメントを使用してソースコードの単一行に設定されたブレークポイントは、サブブレークポイントとして親ブレークポイントに割り当てられます。各サブブレークポイントのイネーブル、ディセーブル、および表示は、単一のステートメントから成るブレークポイントと同じ方法で行うことができます。条件は最上位のブレークポイントにのみ割り当てられるため、親ブレークポイントとサブブレークポイントの両方に影響します。
サンプルについては、「ブレークポイント既存のブレークポイントへの条件の割り当て」を参照して下さい。また、条件ブレークポイントを指定するための使用方法については、 break コマンドの詳細を参照して下さい。

  • 条件ブレークポイントは、ヒットする頻度が高いと非常に侵入的となり、パフォーマンス低下の原因になる可能性があります。これは、ブレークポイントがトリガされるたびにデバッガがターゲットを停止するためです。
  • スクリプトをサブブレークポイントが含まれるブレークポイントに割り当てると、デバッガがそれぞれのサブブレークポイントでスクリプトの実行を試みます。この場合、エラーメッセージが表示されます。サブブレークポイントの例については、ブレークポイントビューを参照して下さい。

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

複数の条件を単一のブレークポイントに設定するときは、以下の点に注意してください。
  • 停止条件無視する回数を設定した場合、停止条件が満たされない限り、無視する回数はデクリメントされません。例えば、変数 c によって制御され、繰り返し回数が 10 回に設定されているループにブレークポイントがあるとします。停止条件 c==5 を設定し、無視する回数3 に設定した場合、4 回目に c==5 でヒットするまで、このブレークポイントはアクティブにならない可能性があります。その後は、c==5 でヒットするたびにアクティブになります。
  • 選択したスレッドまたはプロセッサでブレークするよう指定した場合、停止条件無視する回数は選択したスレッドまたはプロセッサに対してのみチェックされます。
  • 条件は、以下の順序で評価されます。
    1. スレッドまたはプロセッサ。
    2. 条件。
    3. 無視する回数。
関連する参考文書
11.3 ARM アセンブラエディタ
11.4 [Breakpoints]ビュー
11.5 C/C++ エディタ
11.6 [Commands]ビュー
11.8 [Disassembly]ビュー
11.11 [Expressions]ビュー
11.14 [Memory]ビュー
11.17 [Registers]ビュー
11.26 [Variables]ビュー
非機密扱いPDF file icon PDF 版ARM DUI0446WJ
Copyright © 2010-2015 ARM.All rights reserved.