2010-02-10 7 views
6

¿Hay alguna manera de hacer que FxCop analice el código C++ no administrado? Establecer el indicador/clr permitió a FxCop abrir el .exe. Encuentra muchos elementos de C++, pero el análisis del código es muy débil. Por ejemplo, el código siguiente se ha omitido:FxCop (o equivalente) para el código no-NET C++


int i=0; 
if (i=2) printf("Don't worry..everything will be okay."); 

Me gustaría una herramienta que puede coger el i=2 y advertir que debe ser i==2. ¿Algún consejo sobre conseguir FxCop para ser más exhaustivo u otra herramienta que otros encontraron útil?

Respuesta

4

MSVC (al menos VC9/VS2008) ya se advierte acerca de su ejemplo específico:

warning C4706: assignment within conditional expression 

(oops:. Me acabo de dar cuenta de que tengo mi configuración de proyectos de prueba barrio sube al nivel de advertencia 4 -/W4 MSVC no emite esta advertencia en la configuración predeterminada). Así que establezca la configuración del proyecto en/W4 y obtenga más diagnósticos (con suerte sin demasiado ruido).

Encuentro que las advertencias en VC9 son bastante decentes, y puede configurar fácilmente el compilador para tratarlas como errores si quiere forzar el problema.

La edición Team Server de Visual Studio contiene soporte para PREfast, una herramienta de análisis estático de Microsoft (la opción se encuentra en el Análisis avanzado/Habilitar código de C++ para C/C++). También puede obtener la herramienta en el Kit de controladores de Windows y/o el SDK de Windows, aunque no puedo dar fe de las instrucciones sobre cómo obtener la versión WDK/SDK integradas en Visual Studio:

Otra opción que algunas personas prefieren (no gratis) es Gimpel's PC-Lint product.

0

usamos coverity, no gratis, pero una herramienta de análisis estático impresionante

Cuestiones relacionadas