Vergleich von statischer code-Analyse-tools in Linux?
Hat jemand getan, alle Vergleiche auf statische code-Analyse-Werkzeuge zur Verfügung Linux? Was sind die stärken und Schwächen der folgenden tools:
- Lintian,
- Spärlich,
- Schiene,
- RATTEN,
- Mit der-Wall option.
Würden Sie berücksichtigen, dass die Verwendung nur eines dieser Werkzeuge ist ausreichend?
Ich bin nicht auf der Suche für Empfehlungen (ich kann viel von denen) aber direkte Vergleiche zwischen den verfügbaren tools.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Natürlich gibt es auch die wikipedia-Liste. Diese Liste ist nur eine Liste, und nicht ein Vergleich, sondern eine die links auf der Seite scheint zumindest teilweise Ihre Frage beantwortet, und (sehr kurz) erwähnt ein paar der Programme, die Sie aufgelistet.
Mit -Wall sollte eine Selbstverständlichkeit sein für alle c-Entwickler. Auch, zusätzlich mit -Wextra könnte eine gute Idee sein.
Schiene finden können, andere potenzielle Schwachstellen in Ihrer Anwendung, aber in den meisten Fällen (!) es gibt falsche Warnungen, so dass Sie haben, um wirklich zu verstehen, was die schiene bedeutet, mit dem, was Warnung und die meisten Zeiten, die Sie haben, fügen Sie Anmerkungen wie /aus/oder /unbenutzt/in Ihrem code so schiene nicht zu Schreien auf Sie. Mit schiene, sollten Sie herausfiltern, die Warnungen sind nicht wichtig für Sie, da Sie sonst zu viel Zeit in die Analyse und das scrollen durch viele Nachrichten.
Beachten Sie, dass diese tools nur statische code-überprüfung. Sie verwenden sollten, valgrind zu finden, der Laufzeit memory leaks.
Habe ich verwendet-schiene ein paar mal und fand es zu ausführlich: ich
deaktiviert die meisten Warnungen. Ich denke, dass dieses tool bieten kann
interessante Ergebnisse, wenn Sie korrekt kommentieren Sie Ihren code. Ohne code
Anmerkung, dieses tool ist nicht sehr hilfreich.
Benutze ich manchmal spärlich und betrachten es als ein wertvolles Werkzeug. Es bietet
ein wrapper für gcc, genannt "cgcc". Als Ergebnis, ist es einfach zu laufen
spärlich auf ein Programm, auch wenn es enthält viele Quell-Dateien (
export
- und voilà). Dieses Programm funktioniert am besten, wenn Sie analysierenCC=cgcc
Kernel-source-code.
Nebenbei, ich benutze auch pmccabe auf einer regulären basis. pmccabe nicht ein
statische Analyse: berechnet es die zyklomatische Komplexität. Es kann Ihnen helfen
finden Sie die meisten komplexen Funktionen in Ihrem Programm. Diese Funktionen sind
wahrscheinlich fehleranfällig und schwer zu testen.