2013-12-08 21 views
5

Mit clang und graphviz kann ich den aufrufenden Graphen für einige C/C++ Code as explained in this answer generieren.Wie erzeuge ich ein Datenflussdiagramm mit Clang oder anderen Tools?

Jetzt brauche ich ein Datenflussdiagramm, das auf einer wirklich großen Codebasis berechnet wurde (es ist meistens C), diese Codebasis ist eine Software, in der cmake als Bauwerkzeug verwendet wird.

Also ist mein Problem, angesichts des Namens einer Datenstruktur, wie ich möglicherweise die Namen der Funktionen und der Dateien abrufen kann, die diese Struktur verwenden/implementieren?

Es gibt einigen spärlichen Bezug auf einige Datenfluss-Mining-Algorithmen innerhalb Libtool vom Klirren Projekt (nicht einmal sicher, ob es etwas stabile oder in Entwicklung ist), aber ich fand nichts clang selbst oder scan-build.

Wie kann ich diese Information erzeugen? Ich brauche nur genau das. Angesichts eines Namens, den ich abrufen möchte, wo im Code verwendet wird, konzentrieren sich alle statischen Analysewerkzeuge, die ich überprüfte, auf Funktionen und Methoden. Ich muss eine Datenstruktur in clang überprüfen.

EDIT:

Ich erwäge auch doxygen zur Dokumentation verwendet wird, so dass, wenn die XML-Ausgabe von doxygen für einiges Werkzeug nützlich sein könnte, kann ich es verwenden.

+0

Das könnte ein bisschen verrückt sein, aber haben Sie darüber nachgedacht, die gesamte Codebasis in Eclipse zu laden und dann die Suchfunktionen von Eclipse zu verwenden? – slugonamission

+0

@slugonamission gut, da ich nichts finden kann, was funktioniert ...; Benenne, welche Tools ich mit Eclipse verwenden soll, ich weiß, dass CDT die Eclipse-Suite für C und C++ ist, aber ich weiß nicht, was für diese Art von Analyse verwendet wird. – algl

+0

es ist nicht wirklich für den Datenfluss, aber Ihre Anforderungen scheinen nur zu sein, um zu überprüfen, wo eine Datenstruktur verwendet wird. Mit CDT + Eclipse können Sie zumindest graphisch herausfinden, wo eine Datenstruktur verwendet wird (irgendwo in einem der Suchmenüs), aber nicht eine vollständige DFG. – slugonamission

Antwort

-1

Sie

  • alle Verweise durch eine Funktion
  • Funktionen Aufruf einer Funktion
  • Dateien einschließlich einer Datei
  • und mehr genannt zu einem Symbol
  • globale Definitionen
  • Funktionen abfragen .

mit cscope.

+0

gibt es nichts, was visuell funktioniert? Da dieses Projekt wirklich groß ist, wird eine einfache Liste von Texten aus dem Terminal bald sehr komplex werden. Es gibt auch kein Wort auf dieser Seite über externe Bauwerkzeuge, ich brauche diese Art der Zusammenarbeit wegen der Größe und des Aufbauprozesses meiner Codebasis. – algl

+1

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz zur Verfügung zu stellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. –

+0

als @JohnDoyle, diese Frage wurde nur zum Löschen als Link markiert. Ich empfehle Ihnen, eine umfassendere Antwort zu veröffentlichen. –