Google+
Eclipse Stackfilter Plugin
English
Deutsch

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

In den Eclipse-Preferences kann das Step Filtering konfiguriert werden:

Das Step-Filter filtert nun den Stack-Trace mit den in den Preferences eingestellten Step-Filters:

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#

Installation#

Das von Eclipse mitgelieferte Plugin braucht nur ersetzt das hier erhältliche ersetzt werden:
  1. Passende Plugin-Datei herunterladen
  2. Eclipse beenden
  3. Plugin im Verzeichnis /eclipse/plugins/org.eclipse.jdt.debug.ui... löschen
  4. Heruntergeladenes Plugin an die Stelle ablegen
  5. Eclipse neu starten

Neuen Anhang hinzufügen

Du bist nicht autorisiert, Anhänge zu dieser Seite hochzuladen.

Liste der Anhänge

Art Name des Anhangs Größe Version Zuletzt geändert Autor Kommentar
jpg
preferences step filtering.jpg 72,8 kB 1 17-Apr-2009 14:49 Dieter Käppel Preferences
« Diese Seite (Version-5) wurde zuletzt am 10-Apr-2012 14:30 von Dieter Käppel geändert.