!Herausforderung Die Stack-Traces im Debug-View werden immer länger. Zwischen dem nützlichen Code befinden sich fremde Klassen, die für die momentane [Entwicklung|Engineering] unnötig sind. Durch die Möglichkeit zur Laufzeitgenerierung von Bytecode kommen störende Interceptor-Aufrufe hinzu. Die nützliche Information, meist der eigene Code, wird mühsam zwischen den Zeilen gesucht. [Eclipse] bietet zwar die Möglichkeit zum Step-Filtering, also zum Überspringen von uninteressantem Code beim Stepping. Der Stack-Trace zeigt jedoch nach wie vor die uninteressanten Stack-Frames an. Die Übersichtlichkeit, sowie die Möglichkeit durch Mausklicks im Stack-Trace zu navigieren ist dadurch erheblich eingeschränkt. !Lösung Die [Intersult] hat das Debug-Filter-Plugin entwickelt. Dies filtert nun auch den Stack-Trace im Debug-View mittels der eingestellten Filter. Die Preferences sind über die Preferences (Step Filter) oder durch das Kontextmenü im Stacktrace erreichbar. Die Filterung wird ein- und ausgeschaltet mit dem Knopf für das Step-Filtering. !Beispiel Der folgende Code zeigt eine Klasse, die das Interface ''Comparable'' implementiert, sowie eine Methode ''main'' um eine Sortierung von Instanzen dieser Klassen vorzunehmen: {{{ public class StackTest { public static class Sub implements Comparable<Sub> { private String string; public Sub(String string) { super(); this.string = string; } public String getString() { return string; } public void setString(String string) { this.string = string; } @Override public int compareTo(Sub sub) { return string.compareTo(sub.string); } } public static void main(String[] args) { Object[] objects = new Sub[] { new Sub("Eins"), new Sub("Zwei") }; Arrays.sort(objects); } } }}} Dieses Beispiel wurde gewählt, da beim Sortieren eines Array Klassen aus java.util.* durchlaufen werden: [{Image src='Eclipse/stack no filter.jpg'}] Das Step-Filter filtert nun den Stack-Trace mit den in den Preferences eingestellten Step-Filters: [{Image src='Eclipse/stack with filter.jpg'}] Nach dem Einschalten des Step-Filters und erneuten catchen am Breakpoint sind die beiden Aufrufe "java.util.Array.sort(java.lang.Object[]) line: 1080" und "java.util.Arrays.mergeSort(java.lang.Object[], java.lang.Object[],int, int, int) line: 1156" verschwunden. Das Package java.util.* ist in der Grundeinstellung von Eclipse bereits als Step-Filter definiert. !Downloads * [org.eclipse.jdt.debug.ui für Eclipse 3.3 (Europa)|Eclipse/org.eclipse.jdt.debug.ui_3.2.102.200902181026.jar] * [org.eclipse.jdt.debug.ui für Eclipse 3.4 (Ganymede)|Eclipse/org.eclipse.jdt.debug.ui_3.3.0.v20080603.jar] * [org.eclipse.jdt.debug.ui für Eclipse 3.4.1 (Ganymede)|Eclipse/org.eclipse.jdt.debug.ui_3.3.1.v20080730_r341.jar] !Installation Das von Eclipse mitgelieferte Plugin braucht nur ersetzt das hier erhältliche ersetzt werden: # Passende Plugin-Datei herunterladen # Eclipse beenden # Plugin im Verzeichnis /eclipse/plugins/org.eclipse.jdt.debug.ui... löschen # Heruntergeladenes Plugin an die Stelle ablegen # Eclipse neu starten