Introducción a la depuración en Visual StudioGet started with debugging in Visual Studio

Visual Studio proporciona un conjunto integrado y eficaz de herramientas de compilación y depuración de proyectos.Visual Studio provides a powerful integrated set of project build and debugging tools. En este tema verá cómo empezar a usar el conjunto más básico de características de depuración de la interfaz de usuario.In this topic, find out how to start using the most basic set of debugging UI features.

Mi código no funciona.My code doesn't work. ¡Ayuda, Visual Studio!Help me, Visual Studio!

Ha ideado el editor y ha creado parte del código.So you've figured out the editor and you've created some code. Ahora, quiere empezar a depurar ese código.Now, you want to start debugging that code. En Visual Studio, al igual que en la mayoría de los IDE, hay dos fases de depuración: compilar el código para detectar y resolver errores de proyecto y de compilador; y ejecutar ese código en el entorno para detectar y resolver errores de tiempo de ejecución y dinámicos.In Visual Studio, as with most IDEs, there are two phases to debugging: building the code to catch and resolve project and compiler errors; and running that code in the environment to catch and resolve run-time and dynamic errors.

Compilar el códigoBuild your code

Hay dos tipos básicos de configuración de compilación: Depuración y Versión.There are two basic types of build configuration: Debug and Release. La primera configuración genera un archivo ejecutable más lento y más grande que permite una experiencia de depuración en tiempo de ejecución interactiva y más completa, pero que nunca se debe enviar.The first configuration produces a slower, larger executable that allows for a richer interactive run-time debugging experience, but should never be shipped. La segunda crea un archivo ejecutable más rápido y optimizado, adecuado para enviar (al menos desde la perspectiva del compilador).The second builds a faster, more optimized executable that's appropriate to ship (at least from the perspective of the compiler). La configuración de compilación predeterminada es Depuración.The default build configuration is Debug.

La manera más sencilla de compilar el proyecto consiste en presionar F7, pero también se puede iniciar la compilación seleccionando Compilar > Compilar solución en el menú principal.The easiest way to build your project is to press F7, but you can also start the build by selecting Build > Build Solution from the main menu.

Selección del menú del proyecto de compilación de Visual StudioVisual Studio build project menu selection

Puede observar el proceso de compilación en la ventana de estado Salida, en la parte inferior de la interfaz de usuario de Visual Studio.You can observe the build process in the Output status window at the bottom of the Visual Studio UI. Aquí se muestran los errores, las advertencias y las operaciones de compilación.Errors, warnings, and build operations are displayed here. Si tiene errores (o advertencias por encima de un nivel configurado), se producirá un error de compilación.If you have errors (or if you have a warnings above a configured level), your build will fail. Puede hacer clic en los errores y advertencias para ir a la línea donde se produjeron.You can click on the errors and warnings to go to the line where they occurred. Recompile el proyecto presionando F7 de nuevo (para recompilar solo los archivos con errores) o Ctrl+Alt+F7 (para realizar una recompilación limpia y completa).Rebuild your project by pressing either F7 again (to recompile only the files with errors) or Ctrl+Alt+F7 (for a clean and complete rebuild).

Hay dos ventanas de compilación con pestañas en la ventana de resultados, debajo del editor de compilación: la ventana Salida, que contiene la salida sin formato del compilador (incluidos los mensajes de error), y la ventana Lista de errores, que proporciona una lista, que se puede ordenar y filtrar, de todos los errores y advertencias.There are two build tabbed windows in the results window below the editor: the Output window, which contains the raw compiler output (including error messages); and the Error List window, which provides a sortable and filterable list of all errors and warnings.

Cuando se realiza correctamente, verá resultados como estos en la ventana Salida.When successful, you will see results like this in the Output window.

Salida de compilación correcta de Visual StudioVisual Studio successful build output

Revisar la lista de erroresReview the Error List

Salvo que no haya realizado ninguna modificación en un código que ya se haya compilado correctamente, es probable que tenga un error.Unless you've made no modifications to code you've previously and successfully compiled, you probably have an error. Si no está familiarizado con la codificación, probablemente tenga muchos.If you're new to coding, you probably have lots of them. En ocasiones los errores son obvios, como un simple error de sintaxis o nombre de variable incorrecto, y a veces son difíciles de entender solo con un código críptico como guía.Errors are sometimes obvious, such as a simple syntax error or incorrect variable name, and sometimes they are difficult to understand, with only a cryptic code to guide you. Para obtener una vista más clara de los problemas, vaya a la parte inferior de la ventana Salida de la compilación y haga clic en la pestaña Lista de errores. Se mostrará una vista más organizada de los errores y advertencias del proyecto, que ofrece también algunas opciones adicionales.For a cleaner view of the issues, navigate to the bottom of the build Output window, and click the Error List tab. This takes you to a more organized view of the errors and warnings for your project, and gives you some extra options as well.

Lista de errores y salida de Visual StudioVisual Studio Output and Error List

Haga clic en la línea del error en la ventana Lista de errores para ir a la línea donde se ha producido el error.Click on the error line in the Error List window and jump to the line the error occurs in. (O active los números de línea; para ello, haga clic en la barra Inicio rápido en la parte superior derecha, escriba "números de línea" y presione Entrar.(Or turn on line numbers by clicking in the Quick Launch bar in the upper-right, typing "line numbers" into it, and pressing Enter. Esta es la forma más rápida de acceder a la entrada de la ventana Opciones donde puede activar los números de línea.This is the fastest way to get to Options window entry where you can turn on line numbers. Obtenga información sobre cómo usar la barra Inicio rápido y ahórrese muchos clics en la interfaz de usuario).Learn to use the Quick Launch bar and save yourself a lot of UI clicks!)

Editor de Visual Studio con números de líneaVisual Studio editor with line numbers

Opción de números de línea de Visual StudioVisual Studio line numbers option

Presione Ctrl+G para ir directamente al número de línea donde se ha producido el error.Use Ctrl+G to quickly jump to the line number where the error occurred.

El error se identifica con un "subrayado ondulado" rojo.The error is identified by a red "squiggle" underscore. Mantenga el mouse sobre él para obtener más información.Hover over it for additional details. Al corregirlo desaparecerá, aunque pueda insertar un nuevo error con la corrección.Make the fix and it will go away, although you may introduce a new error with the correction. (Esto se denomina "regresión").(This is called a "regression".)

Error de Visual Studio al mantener el mouseVisual Studio error hover

Recorra la lista de errores y soluciónelos todos en el código.Walk through the error list and address all the errors in your code.

Ventana de errores de depuración de Visual StudioVisual Studio Debug errors window

Revisar los errores con detalleReview errors in detail

Puede que muchos errores no tengan ningún sentido expresados como están en los términos del compilador.Many errors may make no sense to you, phrased as they are in the terms of the compiler. En esos casos, necesitará información adicional.In those cases, you will need additional information. En la ventana Lista de errores, puede hacer una búsqueda automática con Bing para obtener más información sobre el error (o advertencia); para ello, haga clic con el botón derecho en la línea de entrada correspondiente y seleccione Ayuda para Mostrar mensaje en el menú contextual.From the Error List window, you can do an automatic Bing search for more information on the error (or warning) by right-clicking on the corresponding entry line and selecting Show Error Help from the context menu.

Búsqueda en Bing de lista de errores de Visual StudioVisual Studio error list Bing search

Se abre una pestaña en Visual Studio que hospeda los resultados de una búsqueda de Bing para el código y el texto del error.This launches a tab inside Visual Studio that hosts the results of a Bing search for the error code and text. Los resultados provienen de muchos orígenes diferentes en Internet y puede que no todos sean útiles.The results are from many different sources on the Internet, and not all may be helpful.

Como alternativa, puede hacer clic en el valor de código de error con hipervínculo en la columna Código de la Lista de errores.Alternatively, you can click on the hyperlinked error code value in the Code column of the Error List. Se iniciará una búsqueda de Bing solo del código de error.This will launch a Bing search for just the error code.

Usar bombillas para corregir o refactorizar el códigoUse Light Bulbs to fix or refactor code

Las bombillas son una característica nueva de Visual Studio que permiten refactorizar código alineado.Light Bulbs are a new feature for Visual Studio that let you refactor code inline. Son una manera fácil de corregir advertencias comunes de forma rápida y eficaz.They are an easy way to fix common warnings quickly and effectively. Para obtener acceso a ellas, haga clic con el botón derecho en un subrayado ondulado de advertencia (o presione Ctrl+.To access them, right-click on a warning squiggle (or press Ctrl+. manteniendo el mouse sobre la línea ondulada) y, después, seleccione Acciones rápidas.while hovering over the squiggle), and then select Quick Actions.

Opciones rápidas de bombilla de Visual StudioVisual Studio Light Bulb quick options

Verá una lista de posibles correcciones o refactorizaciones que puede aplicar a esa línea de código.You will see a list of possible fixes or refactors you can apply to that line of code.

Vista previa de bombilla de Visual StudioVisual Studio Light Bulb preview

Las bombillas puede usarse siempre que los analizadores de código determinan que hay una posibilidad de corregir, refactorizar o mejorar el código.Light Bulbs can be used wherever the code analyzers determine there is an opportunity to fix, refactor, or improve your code. Haga clic en cualquier línea de código, haga clic con el botón derecho para abrir el menú contextual y seleccione Acciones rápidas (o bien, si prefiere la eficacia, presione Ctrl+.).Click on any line of code, right-click to open the context menu, and select Quick Actions (or, again, if you prefer efficiency, press Ctrl+.). Si hay disponibles opciones de refactorización o mejora, se mostrarán; de lo contrario, se mostrará el mensaje No quick options available here en la esquina inferior izquierda del IDE.If there are refactoring or improvement options available, they will be displayed; otherwise, the message No quick options available here will be displayed in the lower-left corner bezel of the IDE.

Texto "no opción" de bombilla de Visual StudioVisual Studio Light Bulb 'no option' text

Con experiencia, puede usar rápidamente las teclas de dirección y Ctrl+.With experience, you can quickly use the arrow keys and Ctrl+. para comprobar si hay posibilidades de refactorización con las opciones rápidas y limpiar el código.to check for Quick Option refactoring opportunities and clean up your code!

Para obtener más información sobre las bombillas, vea Realizar acciones rápidas con las bombillas.For more information on Light Bulbs, read Perform quick actions with light bulbs.

Depurar el código en ejecuciónDebug Your running code

Ahora que ha compilado el código correctamente y ha realizado un poco de limpieza, ejecútelo presionando F5 o seleccionando Depuración > Iniciar depuración.Now that you've successfully built your code and performed a little clean up, run it by pressing F5 or selecting Debug > Start Debugging. La aplicación se iniciará en un entorno de depuración para que pueda observar su comportamiento con detalle.This will start your app in a debug environment so you can observe its behavior in detail. El IDE de Visual Studio cambia mientras la aplicación se está ejecutando: la ventana Salida se sustituye por dos nuevas (en la configuración de ventanas predeterminada), que son las ventanas con pestañas Automático/Variables locales/Inspección y Pila de llamadas/Puntos de interrupción/Configuración de excepciones/Salida.The Visual Studio IDE changes while your app is running: the Output window is replaced by two new ones (in the default window configuration), the Autos/Locals/Watch tabbed window and the Call Stack/Breakpoints/Exception Settings/Output tabbed window. Estas ventanas tienen varias pestañas que permiten inspeccionar y evaluar las variables, los subprocesos, las pilas de llamadas y otros comportamientos de la aplicación mientras se ejecuta.These windows have multiple tabs which allow you to inspect and evaluate your app's variables, threads, call stacks, and various other behaviors as it runs.

Ventanas automáticas y de pila de llamadas de Visual StudioVisual Studio Autos and Call Stack Windows

Puede detener la aplicación presionando Mayús+F5 o haciendo clic en el botón Detener.You can stop your app by pressing Shift+F5 or by clicking the Stop button. O bien, simplemente cierre la ventana principal de la aplicación (o el cuadro de diálogo de línea de comandos).Or, you can simply close the app's main window (or command line dialog).

Si el código se ejecuta perfectamente y tal y como se esperaba, ¡enhorabuena!If your code ran perfectly and exactly as expected, congratulations! En cambio, si ha dejado de responder o se ha bloqueado, o dio resultados extraños, necesitará encontrar el origen de esos problemas y corregir los errores.However, if it hung, or crashed, or gave you some strange results, you'll need to find the source of those problems and fix the bugs.

Establecer puntos de interrupción simplesSet simple breakpoints

Los puntos de interrupción son la característica más básica y esencial para una depuración confiable.Breakpoints are the most basic and essential feature of reliable debugging. Un punto de interrupción indica dónde Visual Studio debe suspender la ejecución de código para poder echar un vistazo a los valores de las variables o al comportamiento de la memoria, o determinar si se está ejecutando o no una bifurcación de código.A breakpoint indicates where Visual Studio should suspend your running code so you can take a look at the values of variables, or the behavior of memory, or whether or not a branch of code is getting run. No es necesario recompilar un proyecto después de establecer y quitar puntos de interrupción.You do NOT need to rebuild a project after setting and removing breakpoints.

Para establecer un punto de interrupción, haga clic en el margen más alejado de la línea en la que quiere que se produzca la interrupción, o bien presione F9 para establecer un punto de interrupción en la línea de código actual.Set a breakpoint by clicking in the far margin of the line where you want the break to occur, or press F9 to set a breakpoint on the current line of code. Al ejecutar el código, se detendrá (o interrumpirá) antes de que se ejecuten las instrucciones de esta línea de código.When you run your code, it will pause (or break) before the instructions for this line of code are executed.

Punto de interrupción de Visual StudioVisual Studio breakpoint

Entre los usos habituales de los puntos de interrupción se incluyen:Common uses for breakpoints include:

  1. Para reducir el origen de un bloqueo, dispérselos por todo el código de la llamada a métodos que crea que está causando el error.To narrow down the source of a crash or hang, scatter them throughout and around the code of the method call you think is causing the failure. Mientras ejecuta el código en el depurador, quite y restablezca los puntos de interrupción más próximos entre sí hasta que encuentre la línea de código incorrecta.As you run code in the debugger, remove and then reset the breakpoints closer together until you find the offending line of code. Vea la sección siguiente para obtener información sobre cómo ejecutar código en el depurador.See the next section to learn how to run code in the debugger.

  2. Cuando introduzca código nuevo, establezca un punto de interrupción al inicio del mismo y ejecute el código para asegurarse de que se comporta tal y como se espera.When you introduce new code, set a breakpoint at the beginning of it and run the code to make sure it is behaving as expected.

  3. Si ha implementado un comportamiento complejo, establezca puntos de interrupción para el código algorítmico de modo que pueda inspeccionar los valores de las variables y los datos cuando el programa se interrumpa.If you have implemented a complicated behavior, set breakpoint(s) for the algorithmic code so you can inspect the values of the variables and data when the program breaks.

  4. Si está escribiendo código de C o C++, use puntos de interrupción para detener el código y poder inspeccionar los valores de dirección (busque NULL) y los recuentos de referencias al depurar errores relacionados con la memoria.If you are writing C or C++ code, use breakpoints to stop the code so you can inspect address values (look for NULL) and reference counts when debugging for memory-related failures.

    Para más información sobre el uso de puntos de interrupción, vea Usar puntos de interrupción.For more information on using breakpoints, read Using Breakpoints.

Inspeccionar el código en tiempo de ejecuciónInspect your code at run-time

Cuando el código en ejecución llega a un punto de interrupción y se detiene, la línea de código marcada en amarillo (la instrucción actual) todavía no se ha ejecutado.When your running code hits a breakpoint and pauses, the line of code marked in yellow (the current statement) has not executed yet. En este momento, es posible que quiera ejecutar la instrucción actual y después inspeccionar los valores cambiados.At this point, you may want to execute the current statement and then inspect the changed values. Se pueden usar varios comandos de paso para ejecutar código en el depurador.You can use several step commands to execute code in the debugger. Si el código marcado es una llamada de método, puede ejecutarlo paso a paso si presiona F11.If the marked code is a method call, you can step into it by pressing F11. También se puede saltar la línea de código presionando F10.You can also step over the line of code by pressing F10. Para ver los comandos adicionales y obtener detalles sobre cómo recorrer el código, lea Navegar por el código con el depurador.For additional commands and details on how to step through code, read Navigate code with the debugger.

Inspección del valor de tiempo de ejecución de Visual StudioVisual Studio run-time value inspection

En la ilustración anterior, puede avanzar una instrucción en el depurador presionando F10 o F11 (dado que no hay ninguna llamada de método, ambos comandos tienen el mismo resultado).In the preceding illustration, you can advance the debugger one statement by pressing either F10 or F11 (since there is no method call here, both commands have the same result).

Cuando el depurador está pausado, puede inspeccionar las variables y pilas de llamadas para determinar qué está sucediendo.While the debugger is paused, you can inspect your variables and call stacks to determine what is going on. ¿Los valores están dentro de los intervalos que esperaba?Are the values in the ranges you expect to see? ¿Las llamadas se están realizando en el orden correcto?Are calls being made in the right order?

Inspección del valor de tiempo de ejecución de Visual StudioVisual Studio run-time value inspection

Mantenga el mouse sobre una variable para ver los valores y las referencias que contiene actualmente.Hover over a variable to see the value(s) and reference(s) it currently contains. Si ve un valor que no esperaba, probablemente tenga un error en las líneas de código anteriores o en las líneas de código que realizan la llamada.If you see a value you didn't expect, you probably have a bug in the preceding or calling lines of code. Para obtener información más detallada, vea más información sobre cómo usar el depurador.For more in-depth information, learn more about using the debugger.

Además, Visual Studio muestra la ventana Herramientas de diagnóstico, donde puede observar el uso que hace la aplicación de la memoria y la CPU con el tiempo.Additionally, Visual Studio displays the Diagnostic Tools window, where you can observe your app's CPU and memory usage over time. Más adelante en el desarrollo de aplicaciones, puede usar estas herramientas para buscar un uso elevado de la CPU inesperado o de asignación de memoria.Later in your app development, you can use these tools to look for unanticipated heavy CPU usage or memory allocation. Úsela con la ventana Inspección y con puntos de interrupción para determinar qué está causando un uso intensivo o problemas de liberación de recursos inesperados.Use it in conjunction with the Watch window and breakpoints to determine what's causing unexpected heavy usage or unreleased resources. Para más información, vea Guía de características de generación de perfiles.For more information, see Profiling feature tour.

Ejecutar pruebas unitariasRun unit tests

Las pruebas unitarias son la primera línea de defensa contra errores de código porque, cuando se realizan correctamente, se prueba una sola "unidad" de código (normalmente una sola función) y suelen ser mucho más fáciles de depurar que la depuración del programa completo.Unit tests are your first line of defense against code bugs because, when done correctly, they test a single "unit" of code, typically a single function, and are usually much easier to debug than debugging your full program. Visual Studio instala los marcos de pruebas unitarias de Microsoft tanto para código administrado como nativo.Visual Studio installs the Microsoft unit testing frameworks for both managed and native code. Use un entorno de pruebas unitarias para crear pruebas unitarias, ejecutarlas y notificar los resultados de las mismas.Use a unit testing framework to create unit tests, run them, and report the results of these tests. Cuando realice cambios, vuelva a ejecutar las pruebas unitarias para probar que el código sigue funcionando correctamente.Rerun unit tests when you make changes to test that your code is still working correctly. Si usa la edición de Visual Studio Enterprise, puede ejecutar las pruebas automáticamente después de cada compilación.When you use Visual Studio Enterprise edition, you can run tests automatically after every build.

Para empezar, lea Generar pruebas unitarias para el código con IntelliTest.To get started, read Generate unit tests for your code with 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 las pruebas unitarias.To learn more about unit tests in Visual Studio and how they can help you create better quality code, read Unit Test Basics.

Realizar análisis de código estáticoPerform static code analysis

"Análisis estático de código" es una manera sofisticada de decir "comprobar automáticamente si mi código tiene problemas comunes que pueden producir errores en tiempo de ejecución o problemas de administración de código"."Static code analysis" is a fancy way of saying "automatically check my code for common problems that can lead to run-time errors or problems in code management". Adquiera el hábito de ejecutarlo después de limpiar los errores evidentes que impedían la compilación, y dedique algún tiempo a solucionar las advertencias que se puedan producir.Get in the habit of running it once you've cleaned up the obvious errors preventing build, and take some time to address the warnings it may produce. Se ahorrará algunos dolores de cabeza y aprenderá algunas técnicas de estilo de código.You'll save yourself some headaches down the road, as well as learn a few code style techniques.

Presione Alt+F11 (o seleccione Analizar > Ejecutar análisis de código en la solución en el menú superior) para iniciar el análisis de código estático.Press Alt+F11 (or select Analyze > Run Code Analysis on Solution from the top menu) to start static code analysis. Puede llevar algún tiempo si tiene mucho código.This may take some time if you have a lot of code.

Elemento de menú de análisis de código en Visual StudioVisual Studio Code Analysis menu item

Las advertencias nuevas o actualizadas se mostrarán en la pestaña Lista de errores, en la parte inferior del IDE.Any new or updated warnings will appear in the Error List tab at the bottom of the IDE. Haga clic en las advertencias para ir directamente a ellas.Click on the warnings to jump to them.

Lista de errores de Visual Studio con advertenciasVisual Studio Error List with Warnings

Las advertencias se identifican por un subrayado ondulado de verde amarillento brillante en lugar de un subrayado rojo.The warnings will be identified with a bright yellow-green squiggle instead of a red one. Mantenga el mouse sobre ellas para obtener más información y haga clic con el botón secundario en ellas para obtener un menú contextual con opciones de corrección o refactorización.Hover over them for more detail, and right-click on them to get a context menu to assist in fixes or refactoring options.

Advertencia de análisis de código de Visual Studio al mantener el mouseVisual Studio Code Analysis Warning hover

Vea tambiénSee Also

Guía de características del depuradorDebugger Feature Tour
Más información sobre cómo usar el depuradorLearn more about using the debugger