Pfadanalyse/Aufrufanalyse

nodder

Mitglied
Hallo zusammen,
ich versuche hie ein Problem in einer recht komplexen Software zu finde und dafür muss ich für ein Objekt herausfinden, wo eine bestimmte Methode aufgerufen wird.

Vereinfachtes Beispiel: Ich habe ein Objekt der Klasse O:
Code:
public class O {
    private String variable;
    public void setVariable(String v){
       this.variable = v;
    }
    public String getVariable() {
       return variable;
    }
}

Das wandert in meiner Software in eine Methode "methodeEins(O o)" und nach einer gewissen Aufrufkette landet das Objekt dann in "methodeZwei(O o)".

Soweit so unspektakulär.

Mit der Call Hierarchy von eclipse kann ich mir auch die Pfade zwischen den beiden Methoden zusammensuchen, das ist auch noch nicht sonderlich schwierig. Was mich aber interessiert sind alle Stellen an denen der Wert von "variable" geändert wird, also wo "setVariable(String v)" aufgerufen wird. Dafür suche ich jetzt halt ein Tool, das mir alle Verästelungen mit allen potenziellen aufrufen von "setVariable(String v)" ausgibt. Also nicht einfach die "References" sondern wirklich alle genauen Aufrufpfade die zwischen den beiden Methoden vorkommen können.

Idealerweise in Eclipse, nutze aber auch gerne andere tools.

Keine Ahnung, ob es für diese Anforderung nen Fachbegriff gibt. Sieht für mich eigentlich nach einer gängigen Analyse Anforderung aus. Ich kann aber beim besten Willen nichts finden. Ich weiss eigentlich nicht mal, wonach ich suchen soll.

Vielleicht kann mir ja einer nen entscheidenden Tipp geben.

Danke schonmal.
 

Flown

Administrator
Mitarbeiter
Du bist doch mit Call Hierarchy doch gut bedient. Lass doch einfach das aufbauen für die Methode setXXX.
 

nodder

Mitglied
Hi, danke für die Antwort.
Genau das will ich ja nicht. Da bekomme ich ja ALLE Calls der Methode. Ich will aber eben explizit nur die, die während des Stackdurchlaufs von methodeEins bis methodeZwei möglich sind.

Vereinfacht ausgedrückt, will ich wissen, wo überall die Methode potenziell verwendet wurde, während sich der Thread in einem abgesteckten Codebereich befindet.
 

Flown

Administrator
Mitarbeiter
Ich kenn jetzt kein Tool, dass explizit solcha Pfade filtert, aber im Debugger kannst du ja sehen, ob die Methode ausgeführt wird und wer der Caller ist.
 

nodder

Mitglied
Ist in dem Konext aus zwei Gründen nicht möglich, ich habe keinen Zugriff auf das laufende System und mein Problem (Bug) lässt sich nicht so ohne weiteres reproduzieren. Das ist genau der Grund, warum ich eben genau diese Informationen habe um zu analysieren, was passiert sein könnte.
 

Flown

Administrator
Mitarbeiter
Wow dann hilft trotzdem nur mit Hilfe der Call Hierarchy das zu analysieren. Wie schon gesagt mir ist jetzt kein Tool bekannt was sagt wie du von a nach b kommst.
 

Neue Themen


Oben