¿Cómo usar la opción de filtro de supresión en línea de CPPCheck para el código C ++?
-
23-10-2019 - |
Pregunta
Me gustaría usar CPPCheck para el análisis de código estático de mi código C ++. Aprendí que puedo suprimir algún tipo de advertencias con --inline-suppr
dominio. Sin embargo, no puedo encontrar lo que "supressed_error_id" debería poner en el comentario:
// cppcheck-suppress "suppressed_error_id"
Solución
Según la ayuda de CPPCheck:
El ID de error es la ID que desea suprimir. La forma más fácil de conseguirlo es usar el indicador de línea de comandos --xml. Copie y pegue la cadena de ID desde la salida XML.
Así que ejecute cppcheck en algún código que contenga el error con el --xml
FLAG, y luego mire en el archivo XML generado para encontrar su nombre.
Otros consejos
Puede cambiar la plantilla de salida para mostrar la ID de error desde la línea de comando, que es bastante ordenada.
Para una salida de formato de Visual Studio con ID de error que se muestra, agregue esto a su línea de comando:
--template "{file}({line}): {severity} ({id}): {message}"
Esto producirá salida algo como esto:
s:\src\jpeg.cpp(123): error (bufferAccessOutOfBounds): Buffer access out-of-bounds: abRY
Que luego puede suprimir agregando la línea:
// cppcheck-suppress bufferAccessOutOfBounds
A la línea anterior en el archivo de origen.
De acuerdo con la Página del hombre CPPCHECK, puedes usar el --template
Opción para cambiar la salida predeterminada para incluir la ID, por ejemplo
cppcheck /the/src/file --template='{file}:{line},{severity},{id},{message}'
Si está utilizando la GUI, puede hacer clic derecho en el mensaje que desea suprimir para que aparezca un menú. Seleccione "Copiar ID de mensaje". Pegue la ID del mensaje en su código en lugar de "Supressed_error_id".