Analisi della qualità dell'applicazione tramite gli strumenti di analisi del codice

La finestra Analisi codice è disponibile in tutte le edizioni di Visual Studio 2013.

Funzionalità di Analisi codice

Finestra Analisi codice

Gli avvisi relativi all'analisi del codice sono ora visualizzati nella finestra dello strumento Analisi codice.La finestra aiuta a gestire e risolvere gli avvisi relativi all'analisi del codice.

Filtro dei messaggi di avviso

Nella finestra è possibile filtrare i messaggi nella finestra Analisi codice per parola chiave, progetto e gravità.

Evidenziazione nell'editor di codice

Selezionando un messaggio nella finestra Analisi codice, viene evidenziata la riga nell'editor del codice sorgente in cui è stato attivato il messaggio.

Eliminazione dei messaggi di C++

Nella finestra Analisi codice è possibile inserire un pragma nel codice sorgente che elimina l'avviso selezionato.

Set di regole di C++

Come nel codice gestito, ora è possibile specificare le regole di analisi che si desidera applicare alle esecuzioni dell'analisi del codice mediante la creazione o l'uso di set di regole.

Supporto per applicazioni Windows Store

È possibile eseguire l'analisi del codice su codice Visual Basic, C# e C/++ nelle applicazioni di Windows Store.Per altre informazioni, vedere Analizzare la qualità del codice delle applicazioni di Windows Store con l'analisi del codice di Visual Studio in Windows Dev Center.

Nuovi avvisi di concorrenza di C+ +

I nuovi avvisi di concorrenza contribuiscono a garantire le discipline di blocco nei programmi C/C++ con multithreading.L'analizzatore rileva numerosi bug di concorrenza, tra cui potenziali race condition, inversioni dell'ordine di blocco, violazioni del contratto di blocco chiamante/chiamato e operazioni di sincronizzazione non corrispondenti.

C26100

Race condition.La variabile <var> deve essere protetta dal blocco <lock>.

C26101

Impossibile utilizzare correttamente l'operazione di interlock per la variabile <var>.

C26105

Violazione dell'ordine di blocco.L'acquisizione del blocco <lock> con livello <level> determina l'inversione dell'ordine.

C26110

Il chiamante non riesce a mantenere il blocco <lock> prima di chiamare la funzione <func>.

C26111

Il chiamante non riesce a rilasciare il blocco <lock> prima di chiamare la funzione <func>.

C26112

Il chiamante non può utilizzare alcun blocco prima di chiamare <func>.

C26115

Il rilascio del blocco <lock> non riesce nella funzione <func>.

C26116

L'acquisizione o il mantenimento del blocco <lock> non riesce in <func>.

C26117

Rilascio del blocco <lock> non mantenuto nella funzione <func>.

C26130

Annotazione _Requires_lock_held_(<lock>) o _No_competing_thread_ mancante nella funzione <func>.In caso contrario, potrebbe trattarsi di una race condition.La variabile <var> deve essere protetta dal blocco <lock>.

C26135

Annotazione <annotation> mancante alla funzione <func>.

C26140

Errore di annotazione SAL di concorrenza

C26160

Il chiamante probabilmente non riesce a mantenere il blocco <lock> prima di chiamare la funzione <func>.

C26165

Probabilmente è impossibile rilasciare il blocco

C26166

Probabilmente è impossibile acquisire o mantenere il blocco <lock> nella funzione <func>.

C26167

Probabile rilascio di un blocco <lock> non mantenuto nella funzione <func>.

C28101

Nel modulo dei driver è stato dedotto che il tipo della funzione corrente non è corretto

C28182

Dereferenziazione del puntatore NULL

In questa sezione

Analisi del codice gestito

L'analisi del codice per il codice gestito fornisce informazioni sugli assembly gestiti, ad esempio le violazioni delle regole di programmazione e progettazione definite nelle linee guida di progettazione di Microsoft .NET Framework.I messaggi di avviso identificano eventuali problemi di programmazione e progettazione e, se possibile, forniscono informazioni su come risolverli.

Analisi del codice C++

Lo strumento di analisi del codice C/C++ fornisce agli sviluppatori informazioni sui possibili errori nel codice sorgente C/C++.Gli errori di codifica più comuni segnalati dallo strumento includono i sovraccarichi del buffer, la memoria non inizializzata, dereferenziazioni al puntatore null e perdite di memoria e risorse.

Code Analysis for Drivers

Gli strumenti di analisi del codice consentono di migliorare la stabilità e l'affidabilità del driver analizzando sistematicamente il codice sorgente del driver.

  • Analyzing Driver Quality by Using Code Analysis Tools
    Code Analysis for Drivers è uno strumento di verifica statica in fase di compilazione che rileva gli errori di codifica di base nei programmi C e C++ e include un modulo specializzato che consente di rilevare errori principalmente nel codice driver in modalità kernel.Static Driver Verifier (SDV) è uno strumento di verifica statica che analizza sistematicamente il codice sorgente dei driver in modalità kernel Windows.SDV stabilisce se il driver interagisce correttamente con il kernel del sistema operativo Windows.

  • Code Analysis for Drivers Warnings
    Descrive gli avvisi che Code Analysis for Drivers segnala quando rileva un possibile errore nel codice del driver.

Argomenti aggiuntivi in questa sezione

  1. Viewing Code Analysis Messages

  2. Miglioramento della qualità del codice con i criteri di archiviazione del progetto team

Altre informazioni sull'analisi del codice

Miglioramento della qualità del codice con i criteri di archiviazione del progetto team

Attività correlate

  1. Misurazione della complessità e della manutenibilità del codice gestito

  2. Verifica del codice tramite unit test