Come utilizzare l'opzione di soppressione in linea di cppcheck filtro per il codice C ++?
-
23-10-2019 - |
Domanda
Vorrei utilizzare Cppcheck per l'analisi statica del codice del mio codice C ++. Ho imparato che posso reprimere un qualche tipo di avvisi con comando --inline-suppr
.
Tuttavia, non riesco a trovare ciò che "suppressed_error_id" devo mettere nel commento:
// cppcheck-suppress "suppressed_error_id"
Soluzione
Secondo l'aiuto cppcheck:
L'id errore è l'id che si desidera sopprimere. Il modo più semplice per farlo è quello di utilizzare il flag della riga di comando --xml. Copia e incolla la stringa id dal xml uscita.
cppcheck Così correre contro alcuni codice che contiene l'errore con la bandiera --xml
, e quindi cercare nel file XML generato per trovare il suo nome.
Altri suggerimenti
È possibile modificare il modello di output per visualizzare l'ID di errore dalla riga di comando, che è abbastanza pulito.
Per un'uscita di Visual Studio formato con l'errore id visualizzata, aggiungere questo alla tua linea di comando:
--template "{file}({line}): {severity} ({id}): {message}"
Questo produrrà uscita qualcosa di simile:
s:\src\jpeg.cpp(123): error (bufferAccessOutOfBounds): Buffer access out-of-bounds: abRY
che è quindi possibile sopprimere aggiungendo la riga:
// cppcheck-suppress bufferAccessOutOfBounds
Per la riga precedente nel file di origine.
Secondo il cppcheck uomo pagina , è possibile utilizzare l'opzione di cambiare il --template
predefinito uscita per includere l'id, es
cppcheck /the/src/file --template='{file}:{line},{severity},{id},{message}'
Se si utilizza l'interfaccia grafica, è possibile fare clic destro sul messaggio che si desidera eliminare per far apparire un menu. Selezionare "Copia ID messaggio". Incollare il messaggio id nel codice al posto di "suppressed_error_id".