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.

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".

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".


-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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.