3.10 条件付きウォッチポイント

条件付きウォッチポイントには、そのウォッチポイントをトリガするために満たす必要のある条件をテストするプロパティが割り当てられています。条件付きウォッチポイントに到達し、指定された条件がチェックされ、評価結果として true が返された場合に、ウォッチポイントがトリガされ、ターゲットは停止します。

たとえば、条件付きウォッチポイントを使用して以下を行うことができます。

  • メモリ領域からのデータにアクセスする際、変数が指定された値になった場合にのみ停止するウォッチポイントを設定できます。
  • 仮想化拡張機能を実装するプロセッサで、(仮想マシン ID (VMID) によって決定される) 特定の仮想マシンの中で実行されている場合にのみトリガされるようウォッチポイントを設定できます。
  • すべての ARMv7 プロセッサと ARMv8 プロセッサで、(現在の コンテキスト ID によって定義される) 特定のプロセスの実行中にのみトリガされるようウォッチポイントを設定できます。

注:

  • 現在、条件付きウォッチポイントは、gdbserver 接続ではサポートされていません。
  • いくつかの条件付きウォッチポイントを作成できますが、ある条件付きウォッチポイントを有効にした場合、(条件付きかどうかにかかわらず) 他のウォッチポイントを有効にすることはできなくなります。
  • 条件付きウォッチポイントは、ヒットする頻度が高いと侵入的となり、パフォーマンス低下の原因になる可能性があります。これは、ウォッチポイントがトリガされるたびにデバッガがターゲットを停止するためです。

ウォッチポイントの作成時に条件を割り当てる方法の詳細については、「3.4 ウォッチポイントの使用」を参照してください。既存のウォッチポイントに条件を割り当てる方法の詳細については、「3.11 既存のウォッチポイントへの条件の割り当て」を参照してください。

awatch コマンド、 rwatch コマンド、 watch コマンドを使用して、ウォッチポイントに条件を割り当てることもできます。

条件付きウォッチポイントを作成する際の注意事項

  • 命令が同期的にトラップを生じさせる場合、(アドレスへの保存など) 状態が変化した後に、条件を評価するため、デバッガはトラップを生じさせている命令をステップ実行します。次にデバッガは、ウォッチポイントで停止すべきかどうかを確認するため、条件を評価します。

    この処理は、特定のアドレスを監視し、特定の値の直後のトラップをそのアドレスに書き込むために必要です。
  • 無視する回数や、特定のウォッチポイントのコアまたはスレッドはサポートされていません。
非機密扱いPDF file icon PDF 版ARM DUI0446ZJ
Copyright © 2010–2016 ARM.All rights reserved.