Inicio rápido: Análisis de código para C/C++Quickstart: Code analysis for C/C++

Se puede mejorar la calidad de la aplicación si se analiza con regularidad el código de C o C++.You can improve the quality of your application by running code analysis regularly on C or C++ code. Esto ayuda a descubrir problemas comunes, infracciones de los procedimientos recomendados de programación o defectos que son difíciles de detectar con pruebas.This can help you find common problems, violations of good programming practice, or defects that are difficult to discover through testing. Las advertencias del análisis de código son distintas de los errores y advertencias del compilador, porque el análisis de código busca patrones de código concretos que, aunque son válidos, pueden crear problemas para ti o para otros usuarios del código.Code analysis warnings differ from compiler errors and warnings because code analysis searches for specific code patterns that are valid but could still create issues for you or other people who use your code.

Configurar conjuntos de reglas para un proyectoConfigure rule sets for a project

  1. En el Explorador de soluciones, abra el menú contextual para el nombre del proyecto y, a continuación, elija propiedades.In Solution Explorer, open the shortcut menu for the project name and then choose Properties.

  2. Los pasos siguientes son opcionales:The following steps are optional:

    1. En el configuración y plataforma listas, elija la plataforma de destino y de configuración de compilación.In the Configuration and Platform lists, choose the build configuration and target platform.

    2. De forma predeterminada, el análisis de código no notifica las advertencias de código generadas automáticamente por herramientas externas.By default, code analysis does not report warnings from code that is automatically generated by external tools. Para ver las advertencias de código generado, desactive la Suprimir resultados del código generado casilla de verificación.To view warnings from generated code, clear the Suppress results from generated code check box.

      Note

      Esta opción no suprime los errores ni las advertencias del análisis de código generado cuando aparecen en formularios y plantillas.This option does not suppress code analysis errors and warnings from generated code when the errors and warnings appear in forms and templates. Puede ver y mantener el código fuente de un formulario o una plantilla.You can both view and maintain the source code for a form or a template.

  3. Para ejecutar análisis de código cada vez que se compila el proyecto con la configuración seleccionada, seleccione el Habilitar análisis de código para C/C ++ al compilar casilla de verificación.To run code analysis every time the project is built using the selected configuration, select the Enable Code Analysis for C/C++ on Build check box. También puede ejecutar análisis de código si abre el analizar menú y, a continuación, elija ejecutar análisis de código en ProjectName.You can also run code analysis manually by opening the Analyze menu and then choosing Run Code Analysis on ProjectName.

  4. En el ejecutar este conjunto de reglas lista, realice una de las siguientes acciones:In the Run this rule set list, do one of the following:

    • Elija el conjunto de reglas que desee usar.Choose the rule set that you want to use.

    • Elija <Examinar... > especificar una regla personalizada existente conjunto que no está en la lista.Choose <Browse...> to specify an existing custom rule set that is not in the list.

    • Definir un conjunto de reglas personalizado.Define a custom rule set.

Conjuntos de reglas estándar de C o C++Standard C/C++ Rule Sets

Visual Studio incluye dos conjuntos de reglas estándar para código nativo:Visual Studio includes two standard sets of rules for native code:

Conjunto de reglasRule Set DescripciónDescription
Reglas mínimas recomendadas nativas de MicrosoftMicrosoft Native Minimum Recommended Rules Este conjunto de reglas se centra en los problemas más graves del código nativo, incluidas posibles vulnerabilidades de seguridad y bloqueos de la aplicación.This rule set focuses on the most critical problems in your native code, including potential security holes and application crashes. Debe incluir este conjunto de reglas en todos los conjuntos de reglas personalizados que cree para sus proyectos nativos.You should include this rule set in any custom rule set you create for your native projects.
Reglas recomendadas nativas de MicrosoftMicrosoft Native Recommended Rules Este conjunto de reglas cubre una amplia gama de problemas.This rule set covers a broad range of problems. Incluye todas las reglas de Reglas mínimas recomendadas nativas de Microsoft.It includes all the rules in Microsoft Native Minimum Recommended Rules.

Ejecutar análisis de códigoRun code analysis

En la página de análisis de código de las páginas de propiedades de proyecto se puede configurar el análisis de código para que se ejecute siempre que se compile el proyecto.On the Code analysis page of the project properties pages, you can configure code analysis to run each time you build your project. También se puede ejecutar el análisis de código de forma manual.You can also run code analysis manually.

Para ejecutar el análisis de código en una solución:To run code analysis on a solution:

  • En el menú Compilar, elija Ejecutar análisis de código en la solución.On the Build menu, choose Run Code Analysis on Solution.

Para ejecutar el análisis de código en proyecto:To run code analysis on a project:

  1. En el Explorador de soluciones, elija el nombre del proyecto.In Solution Explorer, choose the name of the project.

  2. En el compilar menú, elija ejecutar análisis de código en nombre del proyecto.On the Build menu, choose Run Code Analysis on Project Name.

    La solución o proyecto se compila y se ejecuta el análisis de código.The project or solution is compiled and code analysis runs. Los resultados aparecen en la lista de errores.Results appear in the Error List.

Analizar y resolver las advertencias del análisis de códigoAnalyze and resolve code analysis warnings

Para analizar una advertencia concreta, elija el título de la advertencia en la lista de errores.To analyze a specific warning, choose the title of the warning in the Error List. La advertencia se expande para mostrar la información adicional sobre el problema.The warning expands to display additional information about the issue. Cuando es posible, el análisis de código muestra los números de línea y la lógica de análisis que condujeron a la advertencia.When possible, code analysis displays the line numbers and analysis logic that led to the warning. Para obtener información detallada sobre la advertencia, incluidas las soluciones posibles para el problema, elija el identificador de advertencia para mostrar el tema de ayuda en línea correspondiente.For detailed information about the warning, including possible solutions to the issue, choose the warning ID to display its corresponding online help topic.

Cuando se selecciona una advertencia, se resalta la línea de código que produjo la advertencia en el editor de código de Visual Studio.When you select a warning, the line of code that caused the warning is highlighted in the Visual Studio code editor.

Cuando haya entendido el problema, podrá resolverlo en el código.After you understand the problem, you can resolve it in your code. A continuación, vuelva a ejecutar el análisis de código para asegurarse de que ya no aparece la advertencia en la lista de errores y que la corrección no genera nuevas advertencias.Then, rerun code analysis to make sure that the warning no longer appears in the Error List, and that your fix has not raised any new warnings.

Suprimir advertencias de análisis de códigoSuppress code analysis warnings

A veces, uno decide no corregir una advertencia del análisis de código.There are times when you might decide not to fix a code analysis warning. Puede ser que para resolverla se necesita un esfuerzo de codificación excesivo en proporción con la probabilidad de que el problema surja en las implementaciones reales del código.You might decide that resolving the warning requires too much recoding in relation to the probability that the issue will arise in any real-world implementation of your code. O puede que consideres que el análisis que ha dado lugar a la advertencia no es apropiado para ese contexto concreto.Or you might believe that the analysis that is used in the warning is inappropriate for the particular context. Puede suprimir advertencias individuales de modo que ya no aparezcan en la lista de errores.You can suppress individual warnings so that they no longer appear in the Error List.

Para suprimir una advertencia:To suppress a warning:

  1. Si se muestra información detallada, elija el título de la advertencia para expandirla.If the detailed information is not displayed, choose the title of the warning to expand it.

  2. Elige el vínculo Acciones en la parte inferior de la advertencia.Choose the Actions link at the bottom of the warning.

  3. Elija suprimir mensaje y, a continuación, elija en origen.Choose Suppress Message and then choose In Source.

    Al suprimir un mensaje se inserta #pragma warning (disable:[warning ID]) que suprime la advertencia en la línea de código.Suppressing a message inserts #pragma warning (disable:[warning ID]) that suppresses the warning for the line of code.

Crear elementos de trabajo para el código de las advertencias de análisisCreate work items for code analysis warnings

La característica de seguimiento de elemento de trabajo permite registrar errores desde Visual Studio.You can use the work item tracking feature to log bugs from within Visual Studio. Para usar esta característica, es necesario conectarse a una instancia de Team Foundation Server.To use this feature, you must connect to an instance of Team Foundation Server.

Para crear un elemento de trabajo para una o varias advertencias de código de C o C++To create a work item for one or more C/C++ code warnings

  1. En la lista de errores, expanda y seleccione las advertencias.In the Error List, expand and select the warnings

  2. En el menú contextual para las advertencias, elija crear elemento de trabajoy, a continuación, elija el tipo de elemento de trabajo.On the shortcut menu for the warnings, choose Create Work Item, and then choose the work item type.

  3. Visual Studio crea un único elemento de trabajo para las advertencias seleccionadas y muestra el elemento de trabajo en una ventana de documento del IDE.Visual Studio creates a single work item for the selected warnings and displays the work item in a document window of the IDE.

  4. Agregar información adicional y, a continuación, elija Guardar elemento de trabajo.Add any additional information, and then choose Save Work Item.

Buscar y filtrar resultados del análisis de códigoSearch and filter code analysis results

Puedes buscar en las listas largas de mensajes de advertencia y filtrar las advertencias en las soluciones de varios proyectos.You can search long lists of warning messages and you can filter warnings in multi-project solutions.

  • Para filtrar las advertencias por título o identificador de advertencia: escriba la palabra clave en el cuadro de búsqueda.To filter warnings by title or warning id: Enter the keyword in the search box.

  • Para filtrar las advertencias por gravedad: de forma predeterminada, los mensajes de análisis de código tienen asignados una gravedad de advertencia.To filter warnings by severity: By default, code analysis messages are assigned a severity of Warning. Puede asignar la gravedad de uno o más mensajes como Error en una regla personalizada establecido.You can assign the severity of one or more messages as Error in a custom rule set. En el gravedad columna de la lista de errores, elija la flecha desplegable y, a continuación, en el icono de filtro.On the Severity column of the Error List, choose the drop-down arrow and then the filter icon. Elija advertencia o Error para mostrar solo los mensajes que están asignados a la correspondiente gravedad.Choose Warning or Error to display only the messages that are assigned the respective severity. Elija seleccionar todo para mostrar todos los mensajes.Choose Select All to display all messages.

Vea tambiénSee also

Análisis de código para C/C ++Code analysis for C/C++