web-dev-qa-db-ja.com

Java / Eclipseのデータブレークポイント

vSでC++を開発する場合、メモリ内の特定のアドレスのデータが変更されたときにトリガーされるデータブレークポイントのこの驚くべき機能があります。

eclipseでJavaを開発するときに同様の機能はありますか?

ありがとう!

編集:「値が変更されたときに一時停止」機能について:実行はブレークポイントのある行にまだ到達する必要があるという印象があります。問題は、値が変化したらすぐにどこでもトリガーできるようにすることです。

40
clamp

フィールドにウォッチポイントを設定できます。フィールドが宣言されている行にカーソルを置き、メニューを選択しますRun -> Toggle Watchpoint
またはその行の左マージンをダブルクリックしてブレークポイントを設定します。

ウォッチポイントを追加した後、suspend on field accesssuspend on field modificationなどのウォッチポイントのプロパティを変更できます。左マージンのウォッチポイントを右クリックして、Breakpoint Properties...を選択します

ウォッチポイントのヘルプを検索して、詳細情報を取得します。

ウォッチポイントは、特定の式の値が変化するたびに、発生する場所を指定せずにアプリケーションの実行を停止する特別なブレークポイントです。 ...

59
user85421

変数ビューの使用:

  • フィールドを右クリックして[ウォッチポイントの切り替え]を選択し、
  • 同じインスタンスをもう一度右クリックして[インスタンスブレークポイント...]を選択すると、特定のブレークポイントを特定のインスタンスに制限できます。

パフォーマンスは、メモリハードウェアブレークポイント(VC++など)の場合ほどおそらく良くないことに注意してください。

6
Francois Misiak

ブレークポイントのプロパティの下で、条件付きにし、[値が変更されたときに中断する]ラジオボタンをオンにするオプションがあります。

3
Neil

ブレークポイントを右クリックし、Breakpoint propertiesを選択します。

開始画面で、Conditional -> Suspend when value changesを選択します

3

最も近いのは、ブレークポイントのプロパティを編集することです。個別の値をチェックする条件を追加できます。別の方法は、setterメソッドにブレークポイントを追加することです。

ブレークポイントビューで既に設定されているブレークポイントを右クリックして、ブレークポイントのプロパティを設定できます。

1
stacker

私の知る限り、Eclipseにはそのような一般的な機能はありません。ただし、既存のブレークポイントにいくつかの条件を与えることができます。

コードのどこかにブレークポイントを追加します。次に、[ブレークポイント]ビューで右クリックし、[ブレークポイントのプロパティ]を選択します。パネルでは、アプリケーションをこのブレークポイントで停止させるために検証する必要がある条件を追加できます(例:if (foo > 0))。

これはまさにあなたが望むものではありませんが、Eclipseがそのような機能を提供するとは思いません。

1
Romain Linsolas