Frage

Hat jemand Vergleiche zu statischen Tools für statische Codeanalyse gemacht, die Linux zur Verfügung stehen? Was sind die Stärken und Schwächen der folgenden Werkzeuge:

  • Lintian,
  • Spärlich,
  • Schiene,
  • Ratten,
  • Verwenden der Option -wall.

Würden Sie in Betracht ziehen, dass nur eines dieser Tools ausreichend ist?

Ich suche keine Empfehlungen (ich kann viele davon finden), aber direkte Vergleiche zwischen verfügbaren Tools.

War es hilfreich?

Lösung

Es gibt natürlich das Wikipedia -Liste. Diese Liste ist genau das, eine Liste und kein Vergleich, sondern eine von die Links Auf der Seite scheint es zumindest teilweise Ihre Frage zu beantworten und erwähnt (sehr kurz) einige der von Ihnen aufgeführten Programme.

Andere Tipps

Die Verwendung von -wall sollte für jeden C -Entwickler selbstverständlich sein. Außerdem könnte die Verwendung von -wextra eine gute Idee sein.

Schiene kann in Ihrer Anwendung andere potenzielle Schwächen finden, aber in den meisten Fällen (!) Druckt es falsche Warnungen, sodass Sie wirklich verstehen müssen, was Schiene mit welcher Warnung bedeutet und in den meisten Fällen Anmerkungen wie / einfügen müssen /aus/ oder /ungebraucht/ In Ihrem Code schreit die Schiene nicht an Sie. Mit der Schiene sollten Sie Warnungen herausfiltern, die für Sie nicht wichtig sind, sonst haben Sie zu viel Zeit für die Analyse und Scrollen durch viele Nachrichten verbracht.

Beachten Sie, dass diese Tools nur statische Codeprüfung durchführen. Sie sollten Valgrind verwenden, um Laufzeit -Lecks zu finden.

Ich habe eine Schiene ein paar Mal verwendet und es zu ausführlich gefunden: Ich habe die meisten Warnungen deaktiviert. Ich denke, dass dieses Tool interessante Ergebnisse liefert, wenn Sie Ihren Code korrekt annotieren. Ohne Code -Annotation ist dieses Tool nicht sehr hilfreich.

Ich benutze manchmal spärlich und betrachte es als wertvolles Werkzeug. Es bietet einen Wrapper um GCC, der "CGCC" genannt wird. Infolgedessen ist es einfach, ein Programm spärlich auszuführen, auch wenn es viele Quelldateien enthält (export CC=cgcc und voilà). Dieses Programm funktioniert am besten, wenn Sie den Kernel -Quellcode analysieren.

Als Nebenbetreuung verwende ich auch regelmäßig PMCCABE. PMCCABE ist kein statischer Analysator: Es berechnet die zyklomatische Komplexität. Es kann Ihnen helfen, die komplexesten Funktionen in Ihrem Programm zu finden. Diese Funktionen sind wahrscheinlich fehleranfällig und schwer zu testen.

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