So erkennen Sie, wann eine Variable ihren Wert ändert

79

Wie kann ich leicht erkennen, wenn eine Variable ihren Wert ändert? Ich möchte, dass die Ausführung des Programms im Debugger unterbrochen wird, wenn eine bestimmte Variable den Wert ändert. Im Moment verwende ich den Debugger von Eclipse.

Tatsuhirosatou
quelle

Antworten:

122

Für eine Klassen- oder Instanzvariable

  1. Klicken Sie in der Gliederungsansicht mit der rechten Maustaste auf die Variable
  2. Wählen Sie "Watchpoint umschalten".
  3. Anschließend können Sie in der Breapkoints-Ansicht mit der rechten Maustaste auf den resultierenden Eintrag klicken
  4. Wählen Sie "Haltepunkteigenschaften".
  5. Deaktivieren Sie "Feldzugriff".
Michael Borgwardt
quelle
2
Wie füge ich einen Haltepunkt ein, wenn eine Variable im Programm einem bestimmten Wert entspricht?
Jude Desir
1
@JudeDesir Ich bin mir ziemlich sicher, dass diese Funktion nirgendwo existiert, sie würde eine lächerlich schlechte Leistung verursachen.
Michael Borgwardt
Gibt es eine ähnliche Methode für lokale Variablen innerhalb von Methoden?
Tim Foster
Ich benutze Eclipse heutzutage nicht, aber ich bezweifle, dass es existiert. Es ist einfach genug, einfach einen Haltepunkt in jede Zeile der Methode zu setzen, die die Variable ändert.
Michael Borgwardt
Diese Funktion ist zwar vorhanden, kann jedoch dazu führen, dass das Programm viel langsamer ausgeführt wird. Verwenden Sie es sparsam. Es ist nicht immer leicht zu erkennen, wo ein Feld geändert werden könnte, insbesondere wenn das Objekt, das es enthält, an andere Methoden übergeben wird.
Ocie Mitchell
23

ODER Schalten Sie den Haltepunkt in der Zeile um, in der die Variable deklariert ist, klicken Sie mit der rechten Maustaste auf den resultierenden Eintrag, wählen Sie "Haltepunkteigenschaften" und deaktivieren Sie "Feldzugriff".

Andrejro
quelle
-2

Ich bin mir bei Eclipse nicht sicher, aber in IntelliJ IDEA können Sie mit der rechten Maustaste auf einen Haltepunkt klicken und die Bedingungen hinzufügen, genau wie in einer ifAnweisung. Dann pausiert der Debugger nur dann am Haltepunkt, wenn seine Bedingung erfüllt ist.

Zum Beispiel in diesem Fall hält es nur dann , wenn min == 4.

sai
quelle