2015-06-20 16 views
5

Używam cppcheck do analizy statycznej. Aby przyspieszyć proces recenzji, chcę skonfigurować cppcheck, aby wyszukać pewne reguły niestandardowe, na przykład, aby sprawdzić, czy funkcje getera są zdefiniowane jako const.Pisanie reguł niestandardowych dla cppcheck

Jeśli ktoś ma doświadczenie w pisaniu własnych reguł dla cppcheck proszę możesz podać jakiś przykład na pisanie własnych reguł ?.

P.S mam zrobić kilka badań, aby znaleźć narzędzie, które pozwoli mi pisać własne reguły i uczynić proces przeglądu szybciej. mam znaleźć te linki o tym temacie

What open source C++ static analysis tools are available?

C++ static code analysis tool on Windows

A free tool to check C/C++ source code against a set of coding standards?

+0

Cześć, TM_. Żądania dotyczące zasobów offline i prośby o sugestie dotyczące narzędzi nie dotyczą tematu stackoverflow. –

+1

Hi @DrewDormann faktycznie moje pytanie dotyczące pisania niestandardowych reguł dla cppcheck. Jeśli nawet wspomnę o temacie poza tematem, mogę usunąć tę część z mojego pytania. –

+0

Założę się, że to pomoże. Ponownie przeczytałem każde zdanie, które napisałem i zadałem sobie pytanie: "Czy to jest pytanie?" * Nie mogłem znaleźć nigdzie pytania. –

Odpowiedz

6

Jestem deweloperem Cppcheck.

można chyba użyć opcji --rule i --rule-file, aby dodać takie zasady. Może możesz użyć wyrażenia regularnego, takiego jak:

\sget[A-Za-z]+\(\)\s+{\s+return 

To zależy od podstawy kodu.

Jeśli można napisać wyrażenie regularne to jest najbardziej bezpośredni i prosty sposób utworzyć regułę niestandardową.

Aby uzyskać więcej informacji, przeczytaj „Zasady pisania” artykuły tutaj: http://sourceforge.net/projects/cppcheck/files/Articles/

Ale może chcesz napisać bardziej wyszukane reguły poszukiwanie takiego getter przez użyciem Cppcheck SymbolDatabase, tokenlist i drzewa składni. Nie można wtedy użyć --rule i --rule-file. Masz następujące opcje:

  • Użyj - opuść i napisz własne skrypty, które odczytują dane wyjściowe (xml).
  • Napisz kod C++ i skompiluj go w Cppcheck. Jest to względnie proste, ale wymaga samodzielnego skompilowania Cppcheck.
+1

Witam @Daniel Marjamäki Dzięki za odpowiedź. Tak jak zapisano w dokumencie podałeś regułę to plik XML, czy istnieje sposób użycia tego niestandardowego pliku reguł z GUI cppcheck? Gdzie mogę ustawić nową regułę w GUI? –

+1

Obecnie nie można używać reguł w GUI. Myślę, że byłoby stosunkowo łatwo poprawić GUI, ale nikt nie chciał tego zrobić. –

+1

Ok dzięki, spróbuję użyć z terminalem Windows cmd. –

Powiązane problemy