Frage

Haben Sie sugestions von Werkzeugen haben die Aufgabe, das Verständnis C / C ++ Code zu erleichtern? Wir geerbt nur ein großes Stück Software, die von anderen geschrieben, und wir müssen schnell auf sie zu beschleunigen bekommen. Jede Beratung über Tools, die diese Aufgabe vereinfachen könnten?

War es hilfreich?

Lösung

SourceInsight und verstehen für C ++ die besten Werkzeuge sind Sie für C / C ++ Code-Analyse einschließlich Flussdiagramme erhalten.

Andere Tipps

Profilierungssoftware gibt Ihnen eine Vorstellung davon, welche Funktionen aufgerufen wurden.

Wenn Sie Linux verwenden können, versuchen Sie KCachegrind

Persönlich benutze ich den Debugger. Führen Sie den Code und sehen, was ihre tun, und wo sein Gehen, ist der einzige Weg.

Sie können jedoch es durch einige Dokumentation-Generatoren laufen, die (manchmal) Hilfe. Ein gutes Beispiel ist doxygen .

Doxygen ist sehr gut an Diagramme von Code zu erzeugen, ohne Markup-Anwendung, wenn Sie einschalten die EXTRACT_ALL Option. Sie müssen GraphViz installiert Diagramme mit der HAVE_DOT Einstellung erzeugt zu bekommen. Ich finde, die es installiert und die DOT_PATH leer funktioniert gut unter Windows zu verlassen, sondern auf O / X hält direkt an den Punkt Werkzeug Position zu zeigen hat.

Es gibt eine ausgezeichnete -Code Spelunking Artikel in ACM Queue, die mehr spricht über mit doxygen und DTrace.

kscope, auf dem cscope Dienstprogramm gebaut, wenn Sie auf Linux (KDE) sind. Das Beste, was ich je benutzt (und die ganze Zeit) in einem riesigen Stück unbekannten Code deleve, die ich irgendwie verändern müssen oder die API Ich bin für meine Bedürfnisse zu beschäftigen. Zu den Features sind die Querverweis-Datenbank, die in einem viele Möglichkeiten gesucht werden können: Sie alle Verweise eines Symbols finden, seine globale Definition finden Anrufer / Angerufenen einer Funktion und vieles mehr. Es hat sogar einen integrierten IDE und die Fähigkeit, ein Anruf-Diagramm zu zeigen.

Doxygen finden Sie Klasse-Relationship-Diagramme geben, wenn Sie graphviz verwenden, auch wenn Sie nicht speziell vorbereitet haben es.

Es gibt einige Tools wie Ägypten http://www.gson.org/egypt/egypt .html , dass die Arbeit, aber nur, wenn Sie die erwartete GCC-Version verwendet entsprechen den Code und die genaue Version des Generators callgraph zu kompilieren. Das gleiche kann gesagt werden, über codeviz http://www.csn.ul.ie / ~ mel / projects / codeviz /

Andere Option valgrind in cachegrind-Modus verwendet wird (es erzeugt eine Art von callgraph, die Sie von kcachegrind Programm folgen können.

I personnaly Visual Studio-Debugger-Tools verwenden.

Es kommt mit dem „Anrufer-Graph“ -Funktion, die Sie Sachen in kleinen Boxen visualisieren können. Auch die Call Stack und die üblichen Uhreigenschaften sind in der Regel alles, was ich brauche

Es gibt auch AspectBrowser , die nicht sehr gut funktioniert mit eclipse 3.4.0

AQtime Es ist ein Profilierungswerkzeug, das alle Funktionen zeigt, die aufgerufen wurde ( und die Zeit, es dauerte), können Sie die Start- und Endpunkte für die Analyse festgelegt. Sie haben eine 30-Tage-Testversion.

I verwendet Borland Together eine Weile zurück, und es tat ein anständiger Job von Modellen aus dem Code zu generieren. Ich glaube, es wird sogar Sequenzdiagramme aus Code generiert. Denken Sie daran, wenn Ihr Code ein Chaos Ihr Modell werden ist. Und wie ich mich erinnere es ist nicht billig, aber manchmal kann man eine spezielle fangen.

Rational Quantify präsentiert auch einen schönen Aufrufgraphen.

Ich habe versucht, ein Werkzeug namens Visustin, die nicht sehr groß grafisch, sondern tut, was es sagt: Flussdiagramm von Kodex. http://www.aivosto.com/visustin.html

Doxygen ist das Gute daran wird es Sie wissen lassen, Hacke hässlich / gut ist Ihr Code in Bezug auf die zyklische Abhängigkeit von Klassen. So werden Sie gezwungen Ihren Code erneut Faktor, wenn Sie es nicht mögen: -)

SlickEdit ist für die Navigation große Blöcke von Code, den Sie nicht kennen. Die Tags-Funktion kann Sie mit dem Code auf einer funktionale Basis behandeln, ohne mit der Datei in ist es zu beschäftigen. (EMACS hat tatsächlich Tags und ist genauso gut wie SlickEdit, aber mit einer etwas steilere Lernkurve)

Wenn Sie eine Methode oder Klasse erhalten oder Variable, die Sie nicht verstehen, Push-Tag, das Sie gerade auf diesen Code zu gehen, schauen Sie vorbei, dann Pop-Tag zurück. (Diese sind auf Tastenanschläge gebunden, so ist es sehr schnell)

Sie können auch finden Verweise auf nachschauen, wo diese Funktion / Variable verwendet wird.

Speichert Tonnen Zeit über zu gehen und herauszufinden, welche Datei etwas ist in.

doxygen ist ein kostenloses doc-Erzeugungswerkzeug (ähnlich Javadoc), die auch Beziehung Graphen erzeugen wird als gut.

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