2010-11-01 12 views
9

Für einige aktuelle Projekte arbeite ich mit mehreren Datenstrukturen, die ziemlich groß sind (im Bereich von 10K Elementen). Um auf diese Daten in Listen zugreifen zu können, muss ich Schleifen und Iteratoren verwenden, was ein Problem sein kann, wenn sich der Problembereich in der zweiten Hälfte der Liste befindet.Debug-Schleifen

So verbringe ich viel Zeit mit meinem Finger auf der F8-Taste im Eclipse-Debugger, um jedes Element einer Iterationsschleife zu durchlaufen. Dies wird noch schlimmer, wenn Sie diesen Abschnitt mehrmals durchlaufen müssen, um eine Vorstellung zu bekommen, warum der Code auf eine bestimmte Art und Weise reagiert.

Wenn man eine allgemeine Vorstellung davon hat, wie oft eine Schleife ausgeführt werden soll, bevor ein Problembereich erreicht wird, gibt es eine Möglichkeit, einen Schleifenstopppunkt für die Ausführung bis zu diesem Punkt festzulegen und dann anzuhalten?

Antwort

3

Ich glaube, es gibt einen besseren Weg, dies zu tun, aber man kann einen trivialen Codeblock in der Schleife erstellen, die nur bei einer bestimmten Iteration ausführt, und den Haltepunkt setzt im Innern.

if (loopIndex == 1000) { 
    int number = 14;   //Break here 
} 
+0

Das ist eigentlich genau das, was ich ursprünglich als Lösung in Erwägung zog, wollte aber nur wissen, ob es eine bessere Antwort gab – Jason

0

Mit diesem als Beispiel:

for(int i=0;i<10000;i++){ 
    System.out.println(i); 
} 

einen Haltepunkt auf der Druckzeile, dann rechts klicken Sie darauf und wählen Sie Breakpoint Properties.... Von hier aus können Sie eine Bedingung zum Auslösen des Breakpoints setzen. Dies ist vergleichbar mit einer Bedingung, die Sie in einer if-Anweisung haben würden. Wenn Sie den Haltepunkt auslösen möchten, wenn i gleich 6000 ist, überprüfen Sie die Conditional Box und versuchen Sie Folgendes: enter image description here