Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Visual Studio incluye un conjunto integrado eficaz de herramientas de compilación y depuración de proyectos. En este artículo se describe cómo Visual Studio puede ayudarle a encontrar problemas en el código mediante la salida de compilación, el análisis de código, las herramientas de depuración y las pruebas unitarias.
Ha descubierto el editor y ha creado algunos códigos. Ahora, asegúrese de que el código funcione correctamente. En Visual Studio, al igual que con la mayoría de los IDE, hay dos fases para hacer que el código funcione: compilar el código para detectar y resolver errores del proyecto y del compilador, y ejecutar el código para buscar errores dinámicos y en tiempo de ejecución.
Compilar el código
Hay dos tipos básicos de configuración de compilación: Depuración y Publicación. La configuración de depuración genera un archivo ejecutable más lento y grande que permite una experiencia de depuración en tiempo de ejecución interactiva más completa. El ejecutable Debug nunca debe ser distribuido. La configuración de Release compila un ejecutable optimizado que es más eficiente y adecuado para distribuir (al menos desde la perspectiva del compilador). La configuración de compilación predeterminada es Depurar.
La manera más fácil de compilar el proyecto es presionar F7, pero también puede iniciar la compilación seleccionando Compilar>solución en el menú principal.
Puede observar el proceso de compilación en la ventana Salida en la parte inferior de la interfaz de usuario de Visual Studio (interfaz de usuario). Aquí se muestran errores, advertencias y operaciones de compilación. Si tiene errores (o si tiene advertencias por encima de un nivel configurado), se produce un error en la compilación. Puede seleccionar los errores y advertencias para ir a la línea donde se produjeron. Vuelva a compilar el proyecto presionando F7 de nuevo (para volver a compilar solo los archivos con errores) o Ctrl+Alt+F7 (para una recompilación limpia y completa).
Hay dos ventanas con pestañas en la ventana de resultados debajo del editor: la ventana Salida , que contiene la salida del compilador sin procesar (incluidos los mensajes de error); y la ventana Lista de errores, que proporciona una lista ordenada y filtrable de todos los errores y advertencias.
Cuando la compilación se realiza correctamente, verá resultados como este en la ventana Salida :
Revisar la lista de errores
A menos que no haya realizado ninguna modificación en el código que haya compilado previamente y correctamente, es probable que tenga un error. Si no está familiarizado con la codificación, probablemente tenga muchas de ellas. Los errores a veces son obvios, como un error de sintaxis simple o un nombre de variable incorrecto, y a veces son difíciles de entender, con solo un código críptico para guiarle. Para obtener una vista más limpia de los problemas, vaya a la parte inferior de la ventana Salida de compilación y seleccione la pestaña Lista de errores . Esta acción le lleva a una vista más organizada de los errores y advertencias del proyecto, y también proporciona algunas opciones adicionales.
Seleccione en la línea de error de la ventana Lista de errores para saltar a la línea en la que se produce el error. (O active números de línea presionando Ctrl.+P, escriba números de línea y, a continuación, elija Activar o desactivar números de línea en los resultados. Esta acción es la forma más rápida de llegar al cuadro de diálogo Opciones , donde puede activar números de línea).
Presione Ctrl+G para saltar rápidamente al número de línea donde se produjo el error.
Visual Studio identifica este error con un subrayado ondulado rojo. Mantenga el puntero sobre él para obtener más detalles. Haz la corrección y desaparecerá, pero podrías introducir un nuevo error con la corrección. (Esta acción se denomina "regresión").
Recorra la lista de errores y solucione todos los errores del código.
Revisión de los errores con detalle
Es posible que muchos errores no tengan sentido, formulados como están según los términos del compilador. En esos casos, es posible que necesite información adicional. En la ventana Lista de errores, puede realizar una búsqueda automática de Bing para obtener más información sobre el error o la advertencia. Haga clic con el botón derecho en la línea de entrada correspondiente y seleccione Mostrar ayuda de errores en el menú contextual o seleccione el valor de código de error hipervínculo en la columna Código de la lista de errores.
En función de la configuración, el explorador web muestra los resultados de búsqueda del código de error y el texto, o bien se abre una pestaña dentro de Visual Studio y muestra los resultados de la búsqueda de Bing. Los resultados proceden de muchos orígenes diferentes en Internet y es posible que no encuentre todo para ser útil.
Uso del análisis de código
Los analizadores de código buscan problemas comunes de código que pueden provocar errores en tiempo de ejecución o problemas en la administración de código.
Análisis de código de C# y Visual Basic
Visual Studio incluye un conjunto integrado de analizadores de .NET Compiler Platform que examinan el código de C# y Visual Basic mientras escribe. Puede instalar más analizadores como una extensión de Visual Studio o como un paquete NuGet. Si se encuentran violaciones de reglas, se notifican tanto en la lista de errores como en el editor de código mediante una línea ondulada bajo el código infractor.
Análisis de código de C++
Para analizar el código de C++, ejecute el análisis de código estático. Obtenga el hábito de ejecutarlo una vez que haya limpiado los errores obvios que impiden una compilación correcta y dedique algún tiempo a solucionar las advertencias que podría generar. Puede ahorrarse algunos dolores de cabeza por el camino y puede aprender algunas técnicas de estilo de código.
Presione Alt+F11 (o seleccione Analizar>Ejecutar análisis de código en la solución desde el menú superior) para iniciar el análisis de código estático.
Las advertencias nuevas o actualizadas aparecen en la pestaña Lista de errores de la parte inferior del IDE. Seleccione una advertencia para acceder a ella en el código.
Uso de acciones rápidas para corregir o refactorizar código
Acciones rápidas, disponibles en la bombilla o el icono de destornillador, permiten refactorizar el código insertado. Son una manera fácil de corregir advertencias comunes de forma rápida y eficaz en el código de C#, C++y Visual Basic. Para acceder a ellos, haga clic con el botón derecho en un subrayado ondulado de advertencia y seleccione Acciones rápidas y refactorizaciones. O bien, cuando el cursor está en la línea con el trazo de color, presione Ctrl+. o seleccione el icono de la bombilla, la bombilla de error, o el destornillador en el margen. A continuación, Visual Studio muestra una lista de posibles correcciones o refactorizaciones que puede aplicar a esa línea de código.
Las acciones rápidas se pueden usar siempre que los analizadores de código determinen que hay una oportunidad para corregir, refactorizar o mejorar el código. Seleccione en cualquier línea de código, haga clic con el botón derecho para abrir el menú contextual y seleccione Acciones rápidas y refactorizaciones. Si hay opciones de refactorización o mejora disponibles, se muestran. De lo contrario, el mensaje No hay acciones rápidas disponibles aquí se muestra en la esquina inferior izquierda del IDE.
Con experiencia, puede usar rápidamente las teclas de dirección y Ctrl+. para comprobar las oportunidades de refactorización fáciles y limpiar el código.
Ejecutar limpieza de código
Visual Studio proporciona formato a petición del archivo de código de C#, incluidas las preferencias de estilo de código, a través del botón Limpieza de código en la parte inferior del editor.
Además de dar formato al archivo para espacios, sangrías, etc., Limpieza de código también aplica un conjunto de convenciones de estilo de código que defines. Sus preferencias para cada estilo de código se leen en el archivo EditorConfig, si dispone de uno para el proyecto, o desde la configuración de estilo de código en el cuadro de diálogo Opciones.
Depura tu código en ejecución
Ahora que ha compilado correctamente el código y ha realizado una pequeña limpieza, ejecútelo presionando F5 o seleccionando Depurar>Iniciar depuración. Esta acción inicia la aplicación en un entorno de depuración para que pueda observar su comportamiento con detalle. El IDE de Visual Studio cambia mientras se ejecuta la aplicación: la ventana Salida se reemplaza por dos ventanas nuevas (en la configuración de ventana predeterminada), la ventana con pestañas Automático/Variables locales/Inspección y la ventana con pestañas Pila de llamadas/Puntos de interrupción/Configuración de excepciones. Estas ventanas tienen varias pestañas que permiten inspeccionar y evaluar las variables, subprocesos, pilas de llamadas y otros comportamientos a medida que se ejecuta la aplicación.
Para detener la aplicación, presione Mayús+F5 o haga clic en el botón Detener . O bien, puedes cerrar la ventana principal de la aplicación (o cuadro de diálogo de línea de comandos).
Si el código se ejecutó perfectamente y exactamente como se esperaba, ¡felicitaciones! Sin embargo, a veces el código podría dejar de responder o bloquearse, o le proporciona algunos resultados extraños. Si es así, debe intentar encontrar el origen de esos problemas y corregir los errores.
Establecimiento de puntos de interrupción simples
Los puntos de interrupción son la característica más básica y esencial de la depuración confiable. Un punto de interrupción indica dónde debe suspender Visual Studio el código en ejecución para que pueda echar un vistazo a los valores de las variables, o el comportamiento de la memoria, o si se ejecuta una rama de código. No es necesario recompilar un proyecto después de establecer y eliminar puntos de interrupción.
Establezca un punto de interrupción haciendo clic en el margen lejano de la línea donde desea que se produzca la interrupción o presione F9 para establecer un punto de interrupción en la línea de código actual. Al ejecutar el código, se pausa (o interrumpe) antes de que se ejecuten las instrucciones de esta línea de código.
Entre los usos comunes para los puntos de interrupción se incluyen:
Para acotar la fuente de un bloqueo o de un programa que no responde, dispersa puntos de interrupción en y alrededor del código de la llamada al método que piensas que está causando el fallo. A medida que ejecuta código en el depurador, quite y, a continuación, restablezca los puntos de interrupción más cerca unos de otros hasta que encuentre la línea de código problemática. Consulte la sección siguiente para obtener información sobre cómo ejecutar código en el depurador.
Al introducir código nuevo, establezca un punto de interrupción al principio y ejecute el código para asegurarse de que se comporta según lo previsto.
Si ha implementado un comportamiento complicado, establezca puntos de interrupción para el código algorítmico para poder inspeccionar los valores de las variables y los datos cuando se interrumpa el programa.
Si está escribiendo código de C o C++, use puntos de interrupción para detener el código para que pueda inspeccionar los valores de dirección (busque NULL) y los recuentos de referencias al depurar errores relacionados con la memoria.
Para obtener más información sobre el uso de puntos de interrupción, consulte Usar puntos de interrupción en el depurador de Visual Studio.
Inspección del código en tiempo de ejecución
Cuando el código en ejecución alcanza un punto de interrupción y se detiene, la línea de código marcada en amarillo (la instrucción actual) aún no se ha ejecutado. En este punto, es posible que desee ejecutar la instrucción actual y, a continuación, inspeccionar los valores modificados. Puede utilizar varios comandos step para ejecutar código en el depurador. Si el código marcado es una llamada de método, puede entrar en él presionando F11. También puede pasar por encima de la línea de código presionando F10. Para obtener más comandos y detalles sobre cómo recorrer el código, lea Navegar por el código mediante el depurador.
En la ilustración anterior, puede avanzar una sentencia en el depurador presionando F10 o F11 (como no hay llamada de método aquí, ambos comandos tienen el mismo resultado).
Mientras el depurador está en pausa, puede inspeccionar las variables y las pilas de llamadas para determinar lo que está ocurriendo. ¿Son los valores de los intervalos que esperas ver? ¿Se están realizando llamadas en el orden correcto?
Mantenga el puntero sobre una variable para ver su valor actual y referencias. Si ve un valor que no esperaba, es probable que tenga un error en el código que precede o que invoca. Para obtener más información, consulte Primer vistazo al depurador de Visual Studio.
Además, Visual Studio muestra la ventana Herramientas de diagnóstico , donde puede observar el uso de cpu y memoria de la aplicación a lo largo del tiempo. Más adelante en el desarrollo de la aplicación, puedes usar estas herramientas para buscar un uso intensivo de cpu o asignación de memoria imprevistos. Úselo con la ventana Vigilancia y los puntos de interrupción para determinar qué está causando un uso intensivo inesperado o recursos no liberados. Para obtener más información, vea Primer vistazo a las herramientas de generación de perfiles (C#, Visual Basic, C++, F#).
Ejecutar pruebas unitarias
Las pruebas unitarias son la primera línea de defensa contra errores de código porque, cuando se realiza correctamente, prueban una sola "unidad" de código, normalmente una sola función y son más fáciles de depurar que el programa completo. Visual Studio instala los marcos de pruebas unitarias de Microsoft para código administrado y nativo. Use un marco de pruebas unitarias para crear pruebas unitarias, ejecutarlas e informar de los resultados de estas pruebas. Vuelva a ejecutar pruebas unitarias cuando realice cambios para probar que el código sigue funcionando correctamente. Con Visual Studio Enterprise Edition, puede ejecutar pruebas automáticamente después de cada compilación.
Para empezar, lea Generar pruebas unitarias para pruebas de fuzzing mediante IntelliTest.
Para obtener más información sobre las pruebas unitarias en Visual Studio y cómo pueden ayudarle a crear código de mejor calidad, lea Conceptos básicos de pruebas unitarias.