2015-06-20 15 views
5

Sto usando cppcheck per l'analisi statica. Per accelerare il processo di revisione, voglio impostare cppcheck per cercare alcune regole personalizzate, ad esempio per verificare se le funzioni geter sono definite come const.Scrittura Regole personalizzate per cppcheck

Se qualcuno ha esperienza nella scrittura di regole personalizzate per cppcheck, è possibile fornire qualche esempio per scrivere regole personalizzate ?.

P.S Ho fatto qualche ricerca per trovare uno strumento che mi consenta di scrivere regole personalizzate e rendere più veloce il processo di revisione. Ho trovare questi link su questo argomento

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

Ciao, TM_. Le richieste di risorse offline e richieste di suggerimenti degli strumenti sono off-topic per StackOverflow. –

+1

Ciao @DrewDormann in realtà la mia domanda sulla scrittura di regole personalizzate per cppcheck. Se anche solo menzionando anche off-topic posso rimuovere questa parte dalla mia domanda. –

+0

Scommetto che sarebbe d'aiuto. Ho riletto ogni frase che hai digitato e mi sono chiesto * "È una domanda?" * Non ho trovato nessuna domanda da nessuna parte. –

risposta

6

Sono uno sviluppatore Cppcheck.

È possibile utilizzare le opzioni --rule e --rule-file per aggiungere tali regole. Forse puoi usare un'espressione regolare come:

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

Dipende dal tuo codice base.

Se è possibile scrivere un'espressione regolare, questo è il modo più diretto e semplice per creare una regola personalizzata.

Per ulteriori informazioni, leggere gli articoli "regole di scrittura" qui: http://sourceforge.net/projects/cppcheck/files/Articles/

Ma forse si vuole scrivere le regole più sofisticate che cercano tali metodi getter utilizzando la Cppcheck SymbolDatabase, ListaToken e albero di sintassi. Non puoi usare --rule e --rule-file allora. Quindi hai queste scelte:

  • Usa --dump e scrivi i tuoi script personalizzati che leggono i dati di output (xml).
  • Scrivere il codice C++ e compilarlo in Cppcheck. Questo è imho relativamente semplice, ma richiede che tu compili tu stesso Cppcheck.
+1

Ciao @Daniel Marjamäki Grazie per la risposta. Così come scritto nel documento che hai fornito la regola è un file XML, c'è un modo per usare questo file di regole creato con la GUI di cppcheck? Dove posso impostare una nuova regola nella GUI? –

+1

Attualmente non è possibile utilizzare le regole nella GUI. Penso che sarebbe relativamente facile migliorare la GUI, ma nessuno ha voluto farlo. –

+1

Ok grazie, proverò ad usare con il terminale windows cmd. –

Problemi correlati