Preguntas frecuentes: Buscador de características del depurador

En esta documentación se tratan preguntas frecuentes sobre las características de depuración en Visual Studio. También asigna tareas de depuración o problemas a la característica pertinente en el depurador de Visual Studio. Estos vínculos abarcan tareas o problemas, como depurar aplicaciones multiproceso, navegación de código, fuga de memoria, inspeccionar variables, usar puntos de interrupción, depuración de código externo y muchos más. Si necesita información general sobre las características del depurador, vea en su lugar Primer vistazo al depurador.

Puntos de interrupción

  • Procedimiento para pausar un código en ejecución para inspeccionar una línea de código que puede contener un error

    Establezca un punto de interrupción. Para más información, vea Uso de puntos de interrupción.

  • ¿Mi variable tiene un valor inesperado? O bien, ¿quiero inspeccionar mi aplicación cuando llegue a un estado específico?

    Pruebe a usar un punto de interrupción condicional para controlar dónde y cuándo se activa un punto de interrupción mediante lógica condicional. Haga clic con el botón derecho en un punto de interrupción para agregar condiciones. Establezca la condición en true cuando la variable sea igual al valor inesperado.

    Para más información, vea Condiciones de interrupción.

  • ¿Cómo puedo registrar información en la ventana de salida en condiciones configurables sin necesidad de modificar ni detener mi código?

    Los puntos de seguimiento permiten registrar información en la ventana de salida en condiciones configurables sin necesidad de modificar ni detener el código.

  • ¿Cómo saber cuándo cambia el valor de la variable?

    En C++, establezca un punto de interrupción de datos.

    En las aplicaciones que usan .NET Core 3, también se puede establecer un punto de interrupción de datos.

    Si no, solo en C# y F#, se puede llevar un seguimiento de un identificador de objeto con un punto de interrupción condicional.

  • ¿Cómo puedo interrumpir la ejecución solo si se alcanza otro punto de interrupción?

    Establezca un punto de interrupción dependiente que interrumpa la ejecución solo si se alcanza otro punto de interrupción por primera vez. Para más información, consulte Punto de interrupción dependiente.

  • ¿Puedo alcanzar un punto de interrupción una sola vez?

    Establezca un punto de interrupción temporal que le permita interrumpir el código solo una vez. Para más información, consulte Punto de interrupción temporal.

  • ¿Puedo pausar código dentro de un bucle en una iteración determinada?

    Establezca un punto de interrupción dependiente que interrumpa la ejecución solo si se alcanza primero otro punto de interrupción. Para más información, vea Número de llamadas.

  • ¿Cómo puedo pausar el código al principio de una función cuando se conoce el nombre de la función, pero no su ubicación?

    Esto se puede llevar a cabo con un punto de interrupción de función. Para más información, vea Establecer puntos de interrupción de función.

  • ¿Cómo puedo pausar el código al principio de varias funciones con el mismo nombre?

    Si existen varias funciones con el mismo nombre (funciones sobrecargadas o funciones en proyectos distintos), se puede usar un punto de interrupción de función.

  • Administrar mis puntos de interrupción y llevar un seguimiento de ellos

    Use la ventana Puntos de interrupción. Para más información, vea Administrar puntos de interrupción.

  • Pausar código y depurar cuando se produzca una excepción controlada o no controlada específica

    Aunque la aplicación auxiliar de excepciones muestra dónde se ha producido un error, si quiere pausar y depurar el error específico, puede indicar al depurador que se interrumpa cuando se produzca una excepción.

  • Establecer un punto de interrupción en la pila de llamadas

    Si quiere pausar y depurar código mientras examina el flujo de ejecución o consulta las funciones en las ventanas Pila de llamadas, vea Establecer un punto de interrupción en la ventana Pila de llamadas.

  • Pausar código en una instrucción de ensamblado específica

    Para hacerlo, establezca un punto de interrupción en la ventana Desensamblado.

  • ¿Cómo puedo conocer los comandos para recorrer mi código durante la depuración?

    Para más información, vea Desplazarse por el código con el depurador.

  • ¿Puedo ejecutar el código en una línea determinada mientras omite los puntos de interrupción sin quitarlos ni deshabilitarlos?

    Puede usar "Forzar ejecución al cursor" para estos escenarios. Puede mantener los puntos de interrupción y el depurador los omitirá hasta que llegue a la línea de código con el cursor. También omitirá cualquiera de las condiciones de interrupción de las excepciones de primera oportunidad que pueden producirse. Para más información, vea Desplazarse por el código con el depurador.

  • Si mi línea de código tiene llamadas a métodos diferentes, ¿puedo entrar en un método específico?

    Haga clic con el botón derecho en la línea de código para abrir un menú contextual que le permita seleccionar la depuración paso a paso por instrucciones específica. Esto mostrará una lista de todos los métodos en los que podría entrar en paso a paso. Ahora puede seleccionar el método que le interese.

Inspección y visualización de datos

  • ¿Cómo puedo comprobar el valor de las variables mientras se ejecuta mi aplicación?

    Mantenga el ratón sobre las variables usando la información sobre datos o inspeccione las variables en las ventanas Automático y Variables locales.

  • ¿Puedo observar el valor cambiante de una variable específica?

    Establezca una inspección de la variable. Para más información, vea Establecer una inspección de variables.

  • ¿Puedo ver las cadenas que son demasiado largas para la ventana del depurador?

    En el visualizador de cadenas se muestran las cadenas demasiado largas para una sugerencia de datos o una ventana del depurador. También puede ayudarle a identificar cadenas con un formato incorrecto.
    El visualizador de cadenas integrado en Visual Studio incluye opciones Texto, XML, HTML y JSON.

  • ¿Cómo puedo ver objetos de colección grandes?

    El visualizador de DataSet permite ver el contenido de DataSet, DataTable, DataView o DataViewManager. El visualizador IEnumerable permite ver objetos como Matrices, Lista, etc. Para más información, consulte Visualizadores tabulares.

Depurar una aplicación que ya se está ejecutando

  • ¿Cómo puedo depurar aplicaciones en ejecución en equipos locales o remotos, depurar varios procesos simultáneamente, depurar aplicaciones que no se crearon en Visual Studio o depurar cualquier aplicación que no se haya iniciado desde Visual Studio?

    Vea Adjuntar a un proceso en ejecución.

  • ¿Cómo puede asociarse repetidamente a la misma aplicación?

    Puede usar Reasociar al proceso (Mayús+Alt+P) para permitir fácilmente iniciar la depuración de la aplicación en un solo clic sin necesidad de pasar por el cuadro de diálogo Asociar al proceso cada vez. Consulte Reasociación a un proceso.

Depuración de aplicaciones multiproceso

  • ¿Cómo puedo depurar una aplicación multiproceso? O bien, ¿mi aplicación está en un estado bloqueado?

    Consulte en la ventana Pilas paralelas más soluciones de problemas.

  • ¿Cómo puedo ver el orden en el que se llama a las funciones?

    Vea Cómo ver la pila de llamadas.

Análisis de memoria

  • ¿Mi aplicación tiene una fuga de memoria?

    Tome una instantánea y ábrala con la herramienta de memoria para solucionar problemas. Consulte Medición del uso de memoria.

  • ¿Cómo puedo analizar el uso de memoria para aplicaciones nativas o administradas?

    Use la herramienta de memoria de Visual Studio a través de la depuración dinámica, los volcados de montón o el generador de perfiles de rendimiento.
    Consulte Elección de una herramienta de análisis de memoria.

  • ¿Cómo puedo analizar el uso de memoria para aplicaciones nativas o administradas sin asociar un depurador? Use el generador de perfiles de rendimiento de Visual Studio con la herramienta de uso de memoria habilitada.
    Consulte Análisis del uso de memoria.

  • ¿Puedo comparar el uso de memoria entre dos puntos en el tiempo?

    Compare instantáneas en la herramienta de memoria o compare dos volcados de montón mediante la funcionalidad de diferencias. Consulte Análisis del uso de memoria.

Depuración de código externo

  • ¿Puedo ver solo el código de usuario durante la depuración?

    Solo mi código es una característica de depuración de Visual Studio que depura paso a paso por procedimientos las llamadas al sistema, el marco y otro código que no es de usuario. En la ventana Pila de llamadas, Solo mi código contrae estas llamadas en marcos de [código externo] . Consulte Depuración de código de usuario exclusivamente con Solo mi código

  • ¿Puedo ver o depurar las instrucciones de ensamblado sin procesar que está ejecutando mi programa?

    Use la ventana Desensamblado de Windows en Depurar > Windows > Desensamblar. Puede recorrer una instrucción cada vez e incluso establecer puntos de interrupción en instrucciones de ensamblado individuales.

  • ¿Puedo ver el código fuente de las bibliotecas de .NET?

    Habilite servidores de símbolos de Microsoft en Depurar > Opciones > Símbolos para descargar símbolos y el código fuente de las bibliotecas de .NET. Consulte Especificar símbolo.

  • ¿Puedo cargar archivos PDB desde una ubicación o servidor específico o compartido?

    Configure los servidores de símbolos en Depurar > Opciones > Símbolos. Consulte Especificar símbolo.

  • ¿Puedo no cargar nunca un archivo PDB específico? O bien, ¿cómo puedo cargar uno siempre?

    Configure las listas de inclusión y exclusión en Depurar > Opciones > Símbolos.
    Consulte Especificar símbolo.

Configuración de depuración

  • ¿Puedo configurar los valores del depurador?

    Para configurar las opciones del depurador y del proyecto del depurador, vea Preparación y configuración del depurador.

  • ¿Puedo personalizar la información que se muestra en el depurador?

    Puede que quiera ver información distinta del tipo de objeto como el valor que aparece en las distintas ventanas del depurador. En los códigos de C#, Visual Basic, F# y C++/CLI, use el atributo DebuggerDisplay. Respecto a opciones más avanzadas, la interfaz de usuario también se puede personalizar creando un visualizador personalizado. En el caso de C++ nativo, use el marco NatVis.

Tareas adicionales

  • ¿Tengo que guardar un volcado de memoria?

    Mientras se detiene en un error o un punto de interrupción durante la depuración, seleccione Depurar > Guardar volcado como. Consulte Archivos de volcado de memoria

  • ¿Cómo analizar un archivo de volcado de memoria?

    Para abrir el volcado, elija Archivo > Abrir en Visual Studio. Para iniciar la depuración, seleccione Depurar solo con código administrado, Depurar solo con código nativo, Depurar con código mixto o Debug with Managed Memory (Depurar con memoria administrada). Consulte Archivos de volcado de memoria

  • ¿Puedo editar código durante una sesión de depuración?

    Use la opción Editar y continuar. En el caso de XAML, use Recarga activa de XAML.

  • ¿Cómo puedo depurar en máquinas remotas?

    Vea Depuración remota.

  • ¿Cómo puedo corregir problemas de rendimiento?

    Vea Primer vistazo a la generación de perfiles.

  • ¿Cómo corregir una excepción?

    Vea Corregir una excepción.