Finde ich den return Wert vor der Rückkehr beim Debuggen in Eclipse?
Ist es möglich, den Rückgabewert einer Methode ausgeführt, nachdem die Zeile ausgeführt wurde und bevor der instruction-pointer zurück an die aufrufende Funktion?
Ich bin debugging-code, den ich nicht ändern kann (Lesen Sie: will nicht zu re-kompilieren, die eine Drittanbieter-Bibliothek), und manchmal springt es an code, den ich nicht haben Quelle oder der return-Ausdruck hat Nebenwirkungen, die mich stoppen zu können, führen Sie einfach den Ausdruck in der Display tab.
Oft der return-Wert wird in einer compound-Anweisung, und so die Variablen Ansicht niemals zeigen mir den Wert (also wollen, um das Ergebnis zu sehen, bevor die Kontrolle wieder an die aufrufende Funktion).
UPDATE: ich kann nicht mit dem expression-viewer, da gibt es Nebenwirkungen, die in der Anweisung.
Mitchell sieht dies wie eine gute Idee für ein plugin. Ich werde es mir todo-Liste und versuchen, es zu tun, wenn ich Zeit finde(nicht zu schnell)
Aber wie man das in IntelliJ IDEA?
Wenn ich mich Recht erinnere, ist es nur angezeigt, wenn Sie "Schritt Zurück" (oder gleichwertig).
Wappnen Sie sich für Eclipse-Sauerstoff (Mitte 2017 release-Datum). Die M2 Meilenstein enthält dieses feature.
InformationsquelleAutor RodeoClown | 2008-10-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieses feature wurde Hinzugefügt, um die Eclipse-version 4.7 M2 unter Fehler in Eclipse 40912.
:
return
- Anweisung (mit "Step Over" oder "Schritt Zurück")Sehen Eclipse-Projekt von Sauerstoff (4.7) M2 - Neu und Bemerkenswert für details.
Diese Eclipse-bug wurde in der Folge wiedereröffnet, die Ende 2009. Ich warte immer noch auf ein fix, aber die nicht eins zugeordnet, und kein Ziel-Meilenstein. 🙂
Dies wurde behoben, in den letzten builds von Eclipse 4.7 (M2 an)
Einige Informationen, wie Sie die Fehlerbehebung finden Sie in der Neuen Und Bemerkenswert für 4.7 M2. Suchen Sie nach "- Methode Ergebnis nach Schritt Operationen" hier: eclipse.org/eclipse/news/4.7/M2
Vielen Dank für diesen Hinweis - ich Schnitt es in der Antwort.
InformationsquelleAutor
Gefunden, eine wirklich gute Verknüpfung.
Wählen Sie den Ausdruck gibt den Wert ein und drücken Sie
Dieser zeigt den Wert der return-Anweisung. Das ist sehr hilfreich in Fällen, in denen Sie nicht können oder nicht wollen, ändern Sie nur für debugging-Zwecke.
Hoffe, das hilft.
Hinweis: noch nicht getestet, das mit third-party-Bibliotheken, aber es ist in Ordnung, für meinen code.
Getestet auf Eclipse Java EE IDE for Web Developers. Version: Juno Service Release 1
Das ist genial, vielen Dank!
Ctrl + Shift + I
war auch hilfreich für mich.@Ziege genannt, dieser führt den code mehrere Male, so zum Beispiel, wenn die Funktion hat, diese
return System.currentTimeMillis();
, dann würden Sie kommen zu einem anderen Ergebnis als die Funktion eigentlich zurück!Funktioniert das mit Eclipse CDT?
InformationsquelleAutor Satish
Das ist, warum ich immer den stick mit der folgenden Muster-Methoden:
Meine Regeln:
Natürlich, die meisten triviale Getter befreit sind.
Ich mache das auch, aber SonarLint ist, sich zu beschweren....jetzt bin ich eindeutig genug: stackoverflow.com/questions/31733811/...
InformationsquelleAutor zvikico
Dies ist tatsächlich ein langjähriger bug im Eclipse-dating-zurück von den ersten Tagen der IDE: https://bugs.eclipse.org/bugs/show_bug.cgi?id=40912
InformationsquelleAutor Arjan Tijms
Ich bin neugierig zu erfahren, die Antwort auf diese Frage auch.
In der Vergangenheit beim Umgang mit 3rd-party-Bibliothek, wie das, was ich getan habe ist, erstellen Sie eine wrapper-Klasse oder untergeordnete Klasse, die Delegierten zu den übergeordneten Klasse und mache mein debugging in der wrapper - /Kind-Klasse. Es braucht zusätzliche Arbeit, obwohl.
InformationsquelleAutor DJ.
"Jetzt zurückkehren, wenn Sie von einer Methode, bei der oberen Methode, in der Variablen-Ansicht zeigt den Rückgabewert der zuvor beendet Anruf" [1]
[1] https://coffeeorientedprogramming.wordpress.com/2016/09/23/eclipse-see-return-value-during-debugging/
InformationsquelleAutor ejaenv
Hart. Meine Erfahrung ist, außerhalb von Eclipse, ist, dass, wenn Sie benötigen könnten, um die Rückkehr Wert, am besten ist es, ordnen Sie es mit einer lokalen variable in der Funktion, so dass der return-Anweisung ist eine einfache
return varname;
und nichtreturn(some * expression || other);
. Allerdings, das ist nicht schrecklich für Sie hilfreich, da Sie sagen, Sie können nicht (oder wollen nicht) ändern oder sogar den code neu kompilieren. Also, ich don ' T haben eine gute Antwort für Sie - vielleicht müssen Sie überdenken Ihre Anforderung.InformationsquelleAutor Jonathan Leffler
Je nach der return-Anweisung, können Sie markieren Sie den Ausdruck, der zurückgegeben wird, und aus dem Rechtsklick-Menü, es sollte so etwas wie "evaluate expression" (die ich nicht habe eclipse vor mir jetzt, aber es ist etwas in der Art). Es wird Ihnen zeigen, was zurückgegeben wird.
InformationsquelleAutor stephmara
Dies ist ein bisschen weit hergeholt, aber wie es scheint nicht einfach zu sein, einfach Weg:
Könnte man verwenden AspectJ instrument-das GLAS mit Aspekten, dass man halt den Rückgabewert von den Methoden, die Sie interessiert sind in. Laut Eclipse-Dokumentation, AspectJ-Programme können ausgetestet wie andere Programme auch.
Gibt es zwei Möglichkeiten, zu Weben, Ihre Klassen, ohne ein neues in der Bibliothek :
Post-compile weaving, wenn die Verarbeitung die Binär-GLAS ist zulässig;
Load-time-weaving, erfordert die Aktivierung eines weaving-agent in der VM.
Finden Sie in der eclipse-Dokumentation (link oben) und auch die AspectJ Development Environment Guide.
InformationsquelleAutor Olivier