Analizar la calidad de la aplicación mediante herramientas de análisis del código

La ventana Análisis de código está disponible en todas las ediciones de Visual Studio 2013.

Características de Análisis de código

Ventana Análisis de código

Las advertencias de análisis de código ahora aparecen en la ventana de herramientas Análisis de código.La ventana ayuda a administrar y resolver las advertencias de análisis de código.

Filtrar mensajes de advertencia

En la ventana Análisis de código puede filtrar mensajes por palabra clave, proyecto y gravedad.

Resaltado del editor de código

Al seleccionar un mensaje en la ventana Análisis de código, se resalta la línea en el editor de código fuente donde se desencadenó el mensaje.

Supresión de mensajes de C++

En la ventana Análisis de código, puede insertar un operador pragma en el código fuente que suprime una advertencia seleccionada.

Conjuntos de reglas de C++

Al igual que con el código administrado, ahora puede especificar las reglas de análisis que desea aplicar a las ejecuciones de análisis de código creando o usando conjuntos de reglas.

Compatibilidad con aplicaciones de la Tienda Windows

Puede ejecutar análisis de código de Visual Basic, C# y C/++ en las aplicaciones de la Tienda Windows.Para obtener más información, vea Analizar la calidad del código de las aplicaciones de la Tienda Windows utilizando análisis de código estático de Visual Studio en el Centro de desarrollo de Windows.

Nuevas advertencias de simultaneidad de C++

Las nuevas advertencias de simultaneidad ayudan a garantizar disciplinas de bloqueo en programas de C/C++ multiproceso.El analizador detecta diversos errores de simultaneidad, entre los que se incluyen posibles condiciones de carrera, inversiones del orden de bloqueo, infracciones del contrato de bloqueo entre llamador y destinatario y operaciones de sincronización no coincidentes.

C26100

Condición de carrera.La variable <var> debe estar protegida por bloqueo <bloqueo>.

C26101

La operación de interbloqueo no se usó correctamente para la variable <var>.

C26105

Infracción del orden de bloqueo.La adquisición del bloqueo <bloqueo> con nivel <nivel> produce la inversión del orden.

C26110

Error del llamador al retener un bloqueo <bloqueo> antes de llamar a la función <func>.

C26111

Error del llamador al desbloquear <bloqueo> antes de llamar a la función <func>.

C26112

El llamador no puede incluir ningún bloqueo antes de llamar a <func>.

C26115

No se puede desbloquear <bloqueo> en la función <func>.

C26116

No se puede adquirir o retener un bloqueo <bloqueo> en <func>.

C26117

Liberación de bloqueo no retenido <bloqueo> en la función <func>.

C26130

Falta la anotación _Requires_lock_held_(<bloqueo>) o _No_competing_thread_ en la función <func>.De lo contrario, podría ser una condición de carrera.La variable <var> debe estar protegida por bloqueo <bloqueo>.

C26135

Falta la anotación <anotación> en la función <func>.

C26140

Error de anotación SAL de simultaneidad

C26160

Posiblemente el llamador no pudo retener el bloqueo <bloqueo> antes de llamar a la función <func>.

C26165

Posiblemente no se pudo liberar el bloqueo

C26166

Posiblemente no se pudo adquirir o retener el bloqueo <bloqueo> en la función <func>.

C26167

Posiblemente se liberó un bloqueo no retenido <bloqueo> en la función <func>.

C28101

El módulo de controladores ha inferido que la función actual no es del tipo correcto

C28182

Desreferenciando un puntero NULL

En esta sección

Análisis de código administrado

El análisis de código administrado proporciona información sobre los ensamblados administrados como, por ejemplo, las infracciones de las reglas de programación y de diseño estipuladas en las instrucciones de diseño de Microsoft .NET Framework.Los mensajes de advertencia identifican cualquier problema pertinente de programación y diseño y, cuando es posible, proporcionan información sobre la solución del problema.

Análisis de código de C++

La herramienta Análisis de código de C/C++ proporciona a los desarrolladores información sobre posibles defectos en su código fuente de C/C++.Entre los errores de codificación más comunes detectados por esta herramienta, destacan las saturaciones de búfer, los casos de memoria no inicializada, la desreferenciación del puntero NULL, así como las pérdidas de memoria y recursos.

Análisis de código para controladores

Las herramientas de análisis de código pueden ayudar a mejorar la estabilidad y confiabilidad del controlador analizando sistemáticamente el código fuente del controlador.

  • Analyzing Driver Quality by Using Code Analysis Tools
    El análisis de código para controladores (Code Analysis for Drivers) es una herramienta de comprobación estática en tiempo de compilación que detecta errores básicos de codificación en programas de C y C++ e incluye un módulo especializado diseñado para detectar errores en el código del controlador en modo kernel (principalmente).El comprobador de controladores estático (Static Driver Verifier, SDV) es una herramienta de comprobación estática que analiza sistemáticamente el código fuente de los controladores en modo kernel de Windows.El SDV determina si el controlador interactúa correctamente con el kernel del sistema operativo de Windows.

  • Code Analysis for Drivers Warnings
    Describe las advertencias que Code Analysis for Drivers notifica cuando detecta un posible error en el código del controlador.

Temas adicionales de esta sección

  1. Viewing Code Analysis Messages

  2. Mejorar la calidad del código con directivas de protección de equipo

Más información sobre el análisis de código

Mejorar la calidad del código con directivas de protección de equipo

Tareas relacionadas

  1. Medir la complejidad y el mantenimiento del código administrado

  2. Comprobar código utilizando pruebas unitarias