Die Suche nach einem freien Source Code Analyzer (Funktionsabhängigkeitsbaum) [geschlossen]

StackOverflow https://stackoverflow.com/questions/1408908

  •  05-07-2019
  •  | 
  •  

Frage

Weiß jemand, wo ich ein Dienstprogramm / Anwendung läuft unter Windows finden kann, die C-Quelle und gibt einen funktionellen Abhängigkeitsbaum?

Analysen

Was ich suche ist etwas in diese Richtung:

  

PrintString-> PrintCharacter-> PrintByte-> Printf

War es hilfreich?

Lösung

Es ist fast sicher übertrieben, aber Sie können dies tun, für C, C ++, PHP, Java, C # und mehr mit Doxygen (wenn Sie Graphviz Punkt haben installiert ist). Hier ist eine Seite mit einem Beispielaufruf Baum durch Doxygen / Punkt erzeugt wird.

Doxygen läuft unter Windows in Ordnung, und Ausgabe von HTML und ein paar andere Formate .

Andere Tipps

Werkzeuge, die Quelle lesen, aber nicht verstehen, die Programmiersprache in einem tiefen semantischen Sinne kann man nur eine Annäherung geben von dem Aufrufgraphen. (Was passiert, wenn ein Anruf erfolgt in einem Makro? Was passiert, wenn der Anruf erfolgt innerhalb eines behinderten Präprozessor bedingt? Was passiert, wenn der Anruf indirekt ist?) Wenn das gut genug ist, und Sie wirklich kümmern sich nicht um zu wissen, was indirekte Anrufe tun, dann Tools wie Doxygen und CScope wahrscheinlich hilfreich sein.

Wenn Sie eine genaue Aufrufgraphen möchten, müssen Sie ein Werkzeug, baut eine volle Kenntnis der Langauge verwendet wird. Frama-C (siehe andere Antwort) AFAIK ist ein, obwohl ich weiß nicht, wie es behandelt Makros und indirekte Anrufe.

Nicht frei, aber die DMS Software Reengineering Toolkit und seine C Frontend haben Voll C Makro / Präprozessor Verarbeitungsfähigkeit und Konstrukte bezeichnen Diagramme für ein System von Dateien. Es beinhaltet insbesondere eine Punkte-Analyse in seinem Aufrufgraphen Aufbau Ihnen eine konservative Annäherung zu geben, wo indirekte Funktionsaufrufe gehen. Siehe Beispiel Aufrufgraphen mit schwarzen Bögen (direkte Anrufe) und blauen Bögen (konservativ analysiert) indirekte Anrufe.

Viele Werkzeuge produzieren diese Art von Call-Graph. Doxygen kann gut haben die meisten Präsentationsmöglichkeiten für die Ergebnisse, eine „Literarische Programmierung“ Werkzeug in seinem Kern zu sein. Das Open-Source-Tool unter http://frama-c.cea.fr/ erzeugt Call-Graphen (auch in dem Punkt-Format), und versucht, zu einer Gruppe, die Funktionen von „Diensten“ automatisch: http : //img23.yfrog.com/img23/8180/9il.png

Insight ist ein kommerzielles-Editor, der die Funktionalität von ctags hat / CSCOPE gerollt. Es kann auch Aufrufbaum Graphen (und fast jede andere Beziehung) angezeigt werden soll.

Quelle Navigator scheint wieder in Entwicklung zu sein (neueste Version von sourcenav NG war im Februar dieses Jahres). Source Navigator können Sie rufen Bäume, Klasse Abhängigkeiten, etc, etc. Ich habe die letzten Versionen nicht versucht. Funktioniert auf Windows oder X11.

http://sourcenav.berlios.de/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top