Java ma kilka bardzo dobrych narzędzi analizy statycznej typu open source, takich jak FindBugs , Checkstyle i PMD . Narzędzia te są łatwe w użyciu, bardzo pomocne, działają na wielu systemach operacyjnych i są bezpłatne .
Dostępne są komercyjne produkty do analizy statycznej C ++. Chociaż posiadanie takich produktów jest świetne, dla studentów jest to o wiele za dużo i zazwyczaj trudno jest uzyskać wersję próbną.
Alternatywą jest znalezienie narzędzi do analizy statycznej C ++ typu open source, które będą działać na wielu platformach (Windows i Unix). Korzystając z narzędzia typu open source, można je zmodyfikować w celu dostosowania do określonych potrzeb. Znalezienie narzędzi nie było łatwym zadaniem.
Poniżej znajduje się krótka lista narzędzi do analizy statycznej C ++, które zostały znalezione lub zasugerowane przez innych.
- C ++ Check http://sf.net/projects/cppcheck/
- Oink http://danielwilkerson.com/oink/index.html
- Licznik kodów C i C ++ http://sourceforge.net/projects/cccc/
- Szyna (z odpowiedzi)
- Wieprzowina Mozilli (z odpowiedzi) (teraz jest to część Oinka)
- Dehydra Mozilli (z odpowiedzi)
- Użyj opcji
-Weffc++
dla GNU g ++ (z odpowiedzi)
Jakie są inne przenośne narzędzia do analizy statycznej C ++ typu open source, o których każdy wie i które można polecić?
Niektóre powiązane linki.
- /programming/97454/c-static-code-analysis-tool-on-windows
- http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis
- http://www.chris-lott.org/resources/cmetrics/
- Darmowe narzędzie do sprawdzania kodu źródłowego C / C ++ względem zestawu standardów kodowania?
- http://spinroot.com/static/
- Wybór narzędzia do analizy kodu statycznego
źródło
Odpowiedzi:
Oink to narzędzie zbudowane na froncie Elsa C ++. Wieprzowina Mozilli to widelec Elsa / Oink.
Zobacz: http://danielwilkerson.com/oink/index.html
źródło
CppCheck to oprogramowanie typu open source i wieloplatformowe.
Mac OS X:
źródło
choco install cppcheck
Jeśli chodzi o kompilator GNU, gcc ma już wbudowaną opcję, która włącza dodatkowe ostrzeżenia dla -Wall. Opcją jest -Weffc ++ i dotyczy naruszenia niektórych wytycznych Scotta Meyersa opublikowanych w jego książkach „ Skuteczne i bardziej skuteczne C ++ ”.
W szczególności opcja wykrywa następujące elementy:
źródło
-Weffc++
ostrzega przed mnóstwem konstruktów, które są doskonale w dużej bazie kodu. Popieram jednak sugestię-Wextra
; nie wychodź z domu bez niego!Na razie w fazie rozwoju, ale clang wykonuje analizę C i ma na celu obsługę C ++ w czasie. Jest to część projektu LLVM .
Aktualizacja : Chociaż strona docelowa mówi „Analizator jest ciągłym procesem w toku”, jest on jednak teraz udokumentowany jako analizator statyczny zarówno dla C, jak i C ++.
Pytanie: Jak uruchomić GCC / Clang do analizy statycznej? (tylko ostrzeżenia)
Opcja kompilatora: -fsyntax-only
źródło
Ktoś inny wspomniał -Weffc ++, ale tak naprawdę jest to jedno z niewielu ostrzeżeń GCC, które domyślnie nie włączam. Jednak zestaw ostrzeżeń, które włączam, jest najważniejszym narzędziem analizy statycznej w moim zestawie. Możesz zobaczyć pełną listę zalecanych ostrzeżeń .
W podsumowaniu:
Zauważ, że niektóre z nich wymagają nowej wersji gcc, więc może być konieczne wyeliminowanie ich z listy, jeśli utkniesz z powrotem w 4.5 lub coś.
źródło
John Carmack wspomina również o PVS-Studio w tym ciekawym poście na blogu „Static Code Analysis” .
źródło
Jeśli przez Open Source naprawdę miałeś na myśli „darmowy”, to szybka analiza Microsoftu jest dobra. Oczywiście tylko w systemie Windows. Jest w pełni zintegrowany z Visual Studio i kompilatorem. na przykład:
źródło
Prawdopodobnie warto przyjrzeć się statycznej analizie Mozilli .
źródło
Wydaje się, że szyna wypełnia rachunek za C.
Jeśli nie podałeś open source, powiedziałbym , że PCLint firmy Gimpel Software jest prawdopodobnie jednym z najlepszych dostępnych narzędzi do sprawdzania kodu statycznego w C ++. Ale oczywiście nie jest to oprogramowanie typu open source.
Mac OS X:
źródło
PREFast firmy Microsoft jest również dostępny w zestawie sterowników Windows. Wersja 7.0 jest do pobrania tutaj .
Dokumenty firmy Microsoft stwierdzają, że należy go uruchamiać tylko w oparciu o kod sterownika, ale ten (stary) post na blogu określa kroki do uruchomienia. Być może można go zintegrować z normalnym procesem kompilacji?
źródło
Pracowaliśmy nad wtyczką Eclipse CDT o nazwie metriculator. Jest wciąż w fazie rozwoju, ale niektóre główne wskaźniki (np. LSLOC, McCabe, EfferentCoupling) są już wdrożone.
Zobacz http://sinv-56013.edu.hsr.ch/redmine/projects/metricular/wiki/Documentation, aby uzyskać więcej informacji, takich jak prezentacja wideo i dokumentacja.
Najnowszą kompilację nocną można zainstalować za pośrednictwem strony aktualizacji: http://sinv-56013.edu.hsr.ch/metriculator/updatesite-nightly/site/
Dalszy opis
Metriculator analizuje statycznie kod źródłowy C ++ i generuje metryki oprogramowania. Metryki są wdrażane jako warcaby Codana. Wyniki analizy można zbadać w osobnym widoku. Każda metryka ma konfigurowalne właściwości (np. Próg „maksymalnej liczby linii kodu na funkcję”). Przekroczenie tego progu zgłosi problem i utworzy znacznik w edytorze kodu źródłowego.
z metriculatorem możesz:
Obecnie metryka zawiera następujące dane:
źródło
Powinieneś wypróbować oo-browser, która ma niesamowitą integrację z xemacs
źródło
Można również kodować rozszerzenia GCC w MELT (język specyficzny dla domeny przeznaczony do rozszerzania GCC) lub wtyczki GCC w C (znacznie trudniej), aby przeprowadzić niestandardową analizę.
źródło
Doxygen przeprowadza analizę przepływu sterowania i generuje wykresy. To może nie być to, czego szukasz, ale uważam, że warto na nie spojrzeć.
źródło