2010-02-10 3 views
6

C'è un modo per ottenere FxCop per analizzare il codice C++ non gestito? L'impostazione del flag/clr ha permesso a FxCop di aprire l'exe. Trova un sacco di elementi C++, ma l'analisi sul codice è molto debole. Ad esempio, il seguente codice è stato saltato:FxCop (o equivalente) per codice C++ non- .Net


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

vorrei uno strumento che può prendere il i=2 e avvertire che dovrebbe essere i==2. Qualche consiglio su come ottenere FxCop per essere più completo o un altro strumento che gli altri hanno trovato utile?

risposta

4

MSVC (almeno VC9/VS2008) avverte già sulla tua esempio specifico:

warning C4706: assignment within conditional expression 

(Ops:. Ho appena realizzato che ho le mie impostazioni progetti di test a gomito fino al livello di avviso 4 -/W4 MSVC non emette questo avviso alle impostazioni predefinite). Quindi imposta le impostazioni del progetto su/W4 e ottieni più diagnostica (si spera senza troppo rumore).

Trovo che gli avvisi in VC9 siano abbastanza decenti e puoi facilmente impostare il compilatore in modo da considerarli come errori se vuoi forzare il problema.

L'edizione Team Server di Visual Studio contiene il supporto per PREfast, uno strumento di analisi statica di Microsoft (l'opzione è nell'Avanzamento/abilitazione analisi del codice C/C++ del progetto C++). È inoltre possibile ottenere lo strumento del Windows Driver Kit e/o Windows SDK, anche se non posso garantire per le istruzioni su come ottenere il/la versione SDK WDK integrati in Visual Studio:

Un'altra alternativa ad alcune persone come (non libero) è Gimpel's PC-Lint product.

0

utilizziamo la coverity, non gratuito ma un fantastico strumento di analisi statica