Tool zur Visualisierung des Codeflusses (C/C++) [closed]

Lesezeit: 3 Minuten

Haben Sie Vorschläge für Tools, die das Verständnis von C/C++-Code erleichtern? Wir haben gerade ein großes Stück Software geerbt, das von anderen geschrieben wurde, und wir müssen uns schnell damit vertraut machen. Irgendwelche Ratschläge zu Tools, die diese Aufgabe vereinfachen könnten?

  • @casperOne: warum ist das “nicht konstruktiv”?! Es ist für jeden nützlich … und konstruktiv!

    – Libellen

    31. August 2012 um 14:30 Uhr

  • @arnaud Fragen zur Einkaufsliste sind nicht konstruktiv. blog.stackoverflow.com/2010/11/qa-is-hard-lets-go-shopping

    – casperOne

    31. August 2012 um 14:31 Uhr

  • @casperOne: Der von Ihnen erwähnte Artikel beschreibt Fragen zu Empfehlungen für den Kauf von Hardware und so weiter. Definitiv abzulehnende Fragen. In diesem Fall geht es um Werkzeuge und Techniken zur Lösung eines bestimmten Problems, nämlich um das Verständnis von großem Code zu unterstützen. Ich persönlich finde die Brücke zwischen den beiden ziemlich groß.

    – Libellen

    31. August 2012 um 14:39 Uhr


  • grok2.com/code_comprehension.html

    – Ciro Santilli OurBigBook.com

    4. Juli 2015 um 5:56 Uhr

  • Denn das ist Stack Overflow. Hier ist jede Frage entweder nicht konstruktiv, dumm oder als Duplikat geschlossen. Und jeder kann Ihre Beiträge bearbeiten, um ihre Bedeutung vollständig zu ändern, damit sie die Frage beantworten können, die Sie nie gestellt haben, und leichter einige Punkte erhalten.

    – SasQ

    30. April 2019 um 18:16 Uhr

SourceInsight und Verstehe für C++ sind die besten Tools, die Sie für die Analyse von C/C++-Code bekommen können, einschließlich Flussdiagrammen.

  • Ich möchte wissen, ob es Tools für Linux gibt?

    – Yongqiang Zhou

    19. April 2014 um 7:14 Uhr

  • CppDepend(cppdepend.com) generiert Anrufgraphen, Abhängigkeitsgraphen mit vielen interessanten Funktionen und funktioniert auch für Linux.

    – James vom CppDepend-Team

    12. Juli 2017 um 17:06 Uhr

Benutzeravatar von Thorsten79
Thorsten79

Profiling-Software gibt Ihnen Aufschluss darüber, welche Funktionen aufgerufen wurden.

Wenn Sie Linux verwenden können, versuchen Sie es KCachegrind

Benutzeravatar von Andy Dent
Andy Dent

Sauerstoff ist sehr gut darin, Diagramme aus Code zu generieren, ohne Markup anzuwenden, wenn Sie die Option EXTRACT_ALL aktivieren. Du brauchst GraphViz installiert, um Diagramme zu erhalten, die mit der Einstellung HAVE_DOT generiert wurden. Ich finde, dass es unter Windows gut funktioniert, wenn es installiert ist und den DOT_PATH leer lässt, aber unter OS / X muss immer direkt auf den Speicherort des Punktwerkzeugs verwiesen werden.

Es gibt eine ausgezeichnete Code-Spelunking Artikel in der ACM-Warteschlange, in dem mehr über die Verwendung von Doxygen und DTrace gesprochen wird.

Benutzeravatar von gbjbaanb
gbjbaanb

Ich persönlich verwende den Debugger. Führen Sie den Code durch und sehen Sie, was er tut und wohin er führt.

Sie können es jedoch durch einige Dokumentationsgeneratoren ausführen, die (manchmal) helfen. Ein gutes Beispiel ist Sauerstoff.

KScope baut auf dem cscope-Dienstprogramm auf, wenn Sie Linux (KDE) verwenden. Das Beste, was ich je benutzt habe (und die ganze Zeit benutze), um mich in ein riesiges Stück unbekannten Codes zu vertiefen, den ich irgendwie modifizieren muss oder welche API ich für meine Bedürfnisse verwenden soll. Zu seinen Funktionen gehört die Querverweisdatenbank, die auf vielfältige Weise durchsucht werden kann: Sie können alle Referenzen eines Symbols finden, seine globale Definition, Aufrufer/Aufgerufene einer Funktion finden und vieles mehr. Es verfügt sogar über eine integrierte IDE und die Möglichkeit, ein Anrufdiagramm anzuzeigen.

Benutzeravatar von Douglas Mayle
Douglas Mayle

Sauerstoff gibt Ihnen Klassenbeziehungsdiagramme, wenn Sie graphviz verwenden, auch wenn Sie sich nicht speziell darauf vorbereitet haben.

Benutzeravatar von OldMan
Alter Mann

Es gibt einige Tools wie Ägypten http://www.gson.org/egypt/egypt.html das funktioniert, aber nur, wenn Sie mit der erwarteten GCC-Version übereinstimmen, die zum Kompilieren des Codes und der genauen Version des Callgraph-Generators verwendet wird. Dasselbe gilt für Codeviz http://www.csn.ul.ie/~mel/projects/codeviz/

Eine andere Option ist valgrind, das im Cachegrind-Modus verwendet wird (es generiert eine Art Callgraph, dem Sie vom kcachegrind-Programm folgen können.

1419000cookie-checkTool zur Visualisierung des Codeflusses (C/C++) [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy